Eunit timeout не работает
Я пытаюсь запустить все модульные тесты, используя eunit внутри папки, но кажется, что время ожидания всегда сбрасывается на 5 секунд.
например
Модуль:
-module(example).
-include_lib("eunit/include/eunit.hrl").
main_test() ->
% sleep for 10 seconds
?assertEqual(true, begin timer:sleep(10000), true end).
Командная строка:
Eshell V5.7.3 (abort with ^G)
1> c(example).
{ok,example}
2> eunit:test({timeout, 15, example}).
Test passed.
ok
3> eunit:test({timeout, 15, {dir, "."}}).
example: main_test (module 'example')...*timed out*
undefined
=======================================================
Failed: 0. Skipped: 0. Passed: 0.
One or more tests were cancelled.
error
Как видите, бег {timeout, 15, example}
работает но не {timeout, 15, {dir, "."}}
, У кого-нибудь есть ключ?
1 ответ
Решение
Для меня это имеет смысл: время ожидания для всего каталога, вероятно, не связано с временем ожидания для отдельных тестов.
Я бы написал тест так:
main_test_() ->
% sleep for 10 seconds
{timeout, 15, ?_assertEqual(true, begin timer:sleep(10000), true end)}.
(Подчеркивание добавлено для создания тестового выражения вместо самого теста; все это в руководстве eunit. Я не думаю, что можно указать время ожидания в самом тесте любым другим способом.)