1

我的问题是如果不包括根应用程序,我就无法为单个应用程序或模块运行 eunit 测试。我的目录布局看起来有点像这样:

├── apps
│   ├── app1
│   └── app2
├── deps
│   ├── amqp_client
│   ├── meck
│   ├── rabbit_common
│   └── ranch
├── rebar.config
├── rel
└── src
    ├── rootapp.app.src
    ├── rootapp.erl
    ├── rootapp.erl
    └── rootapp.erl

现在,我能做的是:

$ rebar eunit skip_deps=true

它为所有应用程序运行测试。另外,我可以这样做:

$ cd apps/app1/
$ rebar eunit skip_deps=true

它运行 app1 的测试(我在 apps/app1 中也有一个 rebar.config。

但是,如果我尝试

$ rebar eunit skip_deps=true apps=app1

什么也没做。没有输出。尝试详细模式给了我:

$ rebar -vv eunit skip_deps=true apps=app1
DEBUG: Consult config file "/Users/myuser/Development/erlang/rootapp/rebar.config"
DEBUG: Rebar location: "/usr/local/bin/rebar"
DEBUG: Consult config file "/Users/myuser/Development/erlang/erlactive/src/rootapp.app.src"
DEBUG: Skipping app: rootapp

当我包含根应用程序时,它可以工作:

$ rebar eunit skip_deps=true apps=rootapp,app1

尽管事实上,我实际上想要测试app1,而不是rootapp,这真的很不舒服,因为SublimeErlSublimeText 2 的插件总是将应用程序设置为包含被测模块的应用程序。所以测试总是会失败,因为实际上没有测试将运行。

长话短说:我可以在任何 rebar.config 文件中配置一些东西,以便在/apps不包括根应用程序的情况下运行一个应用程序的测试吗?

4

1 回答 1

2
于 2014-03-11T04:16:23.470 回答