在哪里放置 eunit 的测试文件?
Where to put test file for eunit?
我正在尝试测试从磁盘加载文件并对其进行一些操作的功能。我的项目分为 src/ 和 test/ 目录。我将测试文件放在 test/ 目录下,并尝试 运行 加载该文件的单元测试。但是,当 运行 从 IDE (IntelliJ) 或使用钢筋的控制台进行测试时,文件似乎不可见。
$ ./rebar eunit
==> traffic-emas (eunit)
input_test: load_from_file_test...*failed*
in function input:load_intersection_definition/1 (src/input.erl, line 40)
in call from input_test:load_from_file_test/0 (test/input_test.erl, line 14)
**error:{badmatch,{error,enoent}}
我应该将 eunit 的测试文件放在哪里以使其可见?
Rebar 的 documentation suggests 您应该在模块本身内部放置特定于模块的 eunit 测试。例如:
-ifdef(TEST).
simple_test() ->
ok = application:start(myapp),
?assertNot(undefined == whereis(myapp_sup)).
-endif.
你可以在你的 eunit 测试中打印出工作目录,看看它认为它在哪里 运行:
debugVal(file:get_cwd())
这应该可以让您知道将它放在哪里。
我正在尝试测试从磁盘加载文件并对其进行一些操作的功能。我的项目分为 src/ 和 test/ 目录。我将测试文件放在 test/ 目录下,并尝试 运行 加载该文件的单元测试。但是,当 运行 从 IDE (IntelliJ) 或使用钢筋的控制台进行测试时,文件似乎不可见。
$ ./rebar eunit
==> traffic-emas (eunit)
input_test: load_from_file_test...*failed*
in function input:load_intersection_definition/1 (src/input.erl, line 40)
in call from input_test:load_from_file_test/0 (test/input_test.erl, line 14)
**error:{badmatch,{error,enoent}}
我应该将 eunit 的测试文件放在哪里以使其可见?
Rebar 的 documentation suggests 您应该在模块本身内部放置特定于模块的 eunit 测试。例如:
-ifdef(TEST).
simple_test() ->
ok = application:start(myapp),
?assertNot(undefined == whereis(myapp_sup)).
-endif.
你可以在你的 eunit 测试中打印出工作目录,看看它认为它在哪里 运行:
debugVal(file:get_cwd())
这应该可以让您知道将它放在哪里。