Не допускайте тайм-аута при запуске тестов Triq

Как я могу изменить время ожидания для eunit в конфигурации rebar3?

Мой бегун eunit истекает, когда я запускаю тесты Triq на основе свойств:

===> Verifying dependencies...
===> Compiling ierminer
===> Performing EUnit tests...

Pending:
  test_ec:ec_prop_test/0
    %% Unknown error: timeout
  undefined
    %% Unknown error: {blame,[3,1]}


Finished in ? seconds
3 tests, 0 failures, 3 cancelled
===> Error running tests

Вот моя спецификация собственности:

-module(ec_property).
-include_lib("triq/include/triq.hrl").

prop_append() ->
    ?FORALL({Xs,Ys},{list(int()),list(int())},
            lists:reverse(Xs++Ys)
            ==
            lists:reverse(Ys) ++ lists:reverse(Xs)).

prop_valid_started() ->
        ?FORALL({Type, Items, Size},
        {oneof([left,right]), non_empty(list(any())), pos_integer()},
            element(1, ec:start(Type, Items, Size)) == ok).

и вот как я это называю из моей тестовой функции eunit:

ec_prop_test() -> ?assert(ec_property:check()).

1 ответ

Решение

Используйте функцию генератора тестов, чтобы указать тайм-аут, превышающий 5 секунд по умолчанию:

ec_prop_test_() ->
    {timeout, 30, ?_assert(ec_property:check())}.

Обратите внимание на заключительное подчеркивание, добавленное к имени функции - так вы создадите генератор тестов. Обратите внимание также на подчеркивание _assert, который является одним из способов создания тестового объекта.

Изменить 30 в примере, сколько угодно секунд.

Другие вопросы по тегам