1

我正在尝试测试从磁盘加载文件并对其进行一些操作的功能。我将我的项目分为 src/ 和 test/ 目录。我将测试文件放在 test/ 目录下,并尝试运行加载此文件的单元测试。但是,从 IDE (IntelliJ) 或使用 rebar 的控制台运行测试时,文件似乎不可见。

$ ./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 的测试文件以使其可见?

4

2 回答 2

1

你可以在你的 eunit 测试中打印出工作目录,看看它认为它在哪里运行:

debugVal(file:get_cwd())

这应该让您很好地了解放置它的位置。

于 2016-02-25T02:36:06.023 回答
-1

Rebar 的文档建议您应该在模块本身内放置一个特定于模块的 eunit 测试。例如:

-ifdef(TEST).

simple_test() ->
    ok = application:start(myapp),
    ?assertNot(undefined == whereis(myapp_sup)).

-endif.
于 2016-02-21T22:36:26.747 回答