我正在尝试使用文件夹中的eunit运行所有单元测试,但似乎超时总是重置为5秒。
e.g。
模块:
-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, "."}}
无效。有没有人有线索?
答案 0 :(得分:6)
对我来说有意义:整个目录的超时可能与单个测试的超时时间无关。
我会像这样编写测试:
main_test_() ->
% sleep for 10 seconds
{timeout, 15, ?_assertEqual(true, begin timer:sleep(10000), true end)}.
(添加了下划线以创建测试表达式而不是测试本身;它全部在eunit manual中。我认为不可能以任何其他方式在测试本身中指定超时。)