[英]How to setup tests with the appropriate code using rebar3?
I have created a simple application via rebar3
templates such as:我通过rebar3
模板创建了一个简单的应用程序,例如:
apps/myapp/app/myapp_app.erl
-module(myapp_app).
-behaviour(application).
-export([start/2, stop/1]).
start(_StartType, _Params) ->
ok.
stop(_State) ->
ok.
I have written a test for that:我为此编写了一个测试:
apps/myapp/test/myapp_test.erl
-module(myapp_test).
-include_lib("eunit/include/eunit.hrl").
simple_test() ->
myapp_app:start(ok, 42).
Sadly, when I launch the test, it seems that the link is not done between the two files:可悲的是,当我启动测试时,似乎两个文件之间没有建立链接:
$ 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
Is there something to add in rebar.config
?在rebar.config
有什么要添加的吗?
If you have .erl files in a custom directory other than 'src', then you need to add it to the code path.如果在“src”以外的自定义目录中有 .erl 文件,则需要将其添加到代码路径中。
You can do it using rebar3 by modifying erl_opts
section in 'rebar.config'
as below.您可以通过修改'rebar.config'
erl_opts
部分来使用 rebar3,如下所示。
{erl_opts, [debug_info, {src_dirs, ["src", "app"]}]}.
Hope this can work for you.希望这对你有用。
rebar3
does not find your .erl
files if you have been under /app
I moved them to /src
. rebar3
没有找到你的.erl
文件,如果你一直在/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
means could not be found when evaluating the call at runtime. undef
表示在运行时评估调用时找不到。 2 To help see what rebar3
is doing I can highly recommend debug , DEBUG=1
. 2为了帮助了解rebar3
正在做什么,我强烈推荐debug , DEBUG=1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.