在 运行 Triq 测试时防止 eunit 超时
Prevent eunit from timing out when running Triq tests
如何在 rebar3 配置中更改 eunit 的超时?
当我进行基于 运行 属性 的 Triq 测试时,我的 eunit 运行ner 超时:
===> 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()).
使用 test generator function 指定比默认 5 秒长的超时:
ec_prop_test_() ->
{timeout, 30, ?_assert(ec_property:check())}.
请注意添加到函数名称的尾部下划线 - 这就是您创建测试生成器的方式。另请注意 _assert
上的前导下划线,这是创建测试对象的一种方法。
将示例中的 30
更改为您需要的任何秒数。
如何在 rebar3 配置中更改 eunit 的超时?
当我进行基于 运行 属性 的 Triq 测试时,我的 eunit 运行ner 超时:
===> 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()).
使用 test generator function 指定比默认 5 秒长的超时:
ec_prop_test_() ->
{timeout, 30, ?_assert(ec_property:check())}.
请注意添加到函数名称的尾部下划线 - 这就是您创建测试生成器的方式。另请注意 _assert
上的前导下划线,这是创建测试对象的一种方法。
将示例中的 30
更改为您需要的任何秒数。