Automated tests 如何使用rebar3使用适当的代码设置测试?
我通过Automated tests 如何使用rebar3使用适当的代码设置测试?,automated-tests,erlang,eunit,rebar3,Automated Tests,Erlang,Eunit,Rebar3,我通过rebar3模板创建了一个简单的应用程序,例如: apps/myapp/app/myapp\u app.erl -module(myapp_app). -behaviour(application). -export([start/2, stop/1]). start(_StartType, _Params) -> ok. stop(_State) -> ok. -module(myapp_test). -include_lib("eunit/inc
rebar3
模板创建了一个简单的应用程序,例如:
apps/myapp/app/myapp\u app.erl
-module(myapp_app).
-behaviour(application).
-export([start/2, stop/1]).
start(_StartType, _Params) ->
ok.
stop(_State) ->
ok.
-module(myapp_test).
-include_lib("eunit/include/eunit.hrl").
simple_test() ->
myapp_app:start(ok, 42).
我为此写了一个测试:
apps/myapp/test/myapp\u test.erl
-module(myapp_app).
-behaviour(application).
-export([start/2, stop/1]).
start(_StartType, _Params) ->
ok.
stop(_State) ->
ok.
-module(myapp_test).
-include_lib("eunit/include/eunit.hrl").
simple_test() ->
myapp_app:start(ok, 42).
遗憾的是,当我启动测试时,两个文件之间的链接似乎没有完成:
$ rebar3 eunit
===> Verifying dependencies...
===> Compiling shoreline
===> Performing EUnit tests...
F
Failures:
1) myapp_test:simple_test/0
Failure/Error: {error,undef,
[{myapp_app,start,"*",[]},
{myapp_test,simple_test,0,
[{file,
"/.../apps/myapp/test/myapp_test.erl"},
{line,8}]},
{myapp_test,simple_test,0,[]}]}
Output:
Finished in 0.074 seconds
1 tests, 1 failures
===> Error running tests
rebar.config
中是否有要添加的内容?rebar3
找不到您的。如果您在/app
下,我将它们移动到/src
➜ myapp rebar3 eunit
===> Verifying dependencies...
===> Compiling myapp
===> Performing EUnit tests...
.
Finished in 0.081 seconds
1 tests, 0 failures
➜ myapp ls
LICENSE README.md _build rebar.config src test
➜ myapp mv src app
➜ myapp rebar3 eunit
===> Verifying dependencies...
===> Performing EUnit tests...
F
Failures:
1) myapp_test:simple_test/0: module 'myapp_test'
Failure/Error: {error,undef,
[{myapp_app,start,[ok,42],[]},
{myapp_test,simple_test,0,[]}]}
Output:
Finished in 0.036 seconds
1 tests, 1 failures
===> Error running tests
undef
意味着在运行时评估调用时可以。要帮助查看rebar3
正在做什么,我强烈建议,DEBUG=1
如果自定义目录中有.erl文件而不是“src”,则需要将其添加到代码路径中
您可以使用rebar3通过修改'rebar.config'
中的erl\u opts
部分来完成此操作,如下所示
{erl_opts, [debug_info, {src_dirs, ["src", "app"]}]}.
希望这对你有用