моя проблема в том, что я не могу запускать тесты 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 (у меня также есть файл rebar.config в apps/app1.
Однако, если я попытаюсь
$ 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
, это действительно неудобно, поскольку плагин SublimeErl
для SublimeText 2 всегда будет устанавливать приложения для приложения, в котором содержится тестируемый модуль. Таким образом, тесты всегда будут терпеть неудачу, потому что на самом деле никакие тесты не будут выполняться вообще.
Короче говоря: есть ли что-то, что я могу настроить в любом из файлов rebar.config, чтобы можно было запускать тесты для одного приложения в /apps
без включения корневого приложения?