在哪里放置eunit的测试文件?

时间:2016-02-21 18:44:12

标签: erlang rebar 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的测试文件以使其可见?

2 个答案:

答案 0 :(得分:1)

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

debugVal(file:get_cwd())

这应该会让你知道放在哪里。

答案 1 :(得分:-1)

Rebar的documentation suggests你应该在模块本身内放置一个特定于模块的eunit测试。 E.g:

-ifdef(TEST).

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

-endif.