как заставить rebar увидеть eunit тест в src файле во вложенном каталоге

73 views
Skip to first unread message

Max Pantuhin

unread,
Apr 27, 2017, 11:54:08 AM4/27/17
to Erlang по-русски


У меня вот такая структура

├── apps
│   ├── app1
│         ├── src
               ├── всякие файлы
│         ├── rebar.config 
├── deps
│   ├── amqp_client
│   ├── meck
│   ├── rabbit_common
│   └── ranch
├── rebar.config


В одном из фалов каталога src сделан eunit test  втом же файле где и код

-include_lib("eunit/include/eunit.hrl").


...
...

sortRecords_test() ->
E1 = 111,
E2 = 222,
E3 = 333,
E4 = 444,
E5 = 555,
E6 = 666,


[RE1,RE2,RE3,RE4,RE5,RE6] = sortRecords([E1,E2,E3,E4,E5,E6]),

?assertEqual(E5,RE1),
?assertEqual(E6,RE2),
?assertEqual(E4,RE3),
?assertEqual(E2,RE4),
?assertEqual(E3,RE5),
?assertEqual(E1,RE6),

ok.

В корневом rebar.config
{sub_dirs, ["apps/*"]}.
{lib_dirs, ["apps","deps"]}.
{deps_dir, "deps"}.


в том каталоге где app1
eunit_opts, [verbose, {report, {eunit_surefire, [{dir, "."}]}}]}.
{eunit_compile_opts, [debug_info]}.

из корневого каталога запускаю
bash-4.1$ rebar  eunit skip_deps=true
==> Source (eunit)

И даже каталога .eunit не появляется

bash-4.1$ rebar --version
rebar 2.3.1 R16B02 20140602_101727 git 2.3.1-14-g7936f9e


Что я сделал не так? Почему rebar не видит теста?


mprize

unread,
Apr 28, 2017, 2:09:38 AM4/28/17
to Erlang по-русски
возможно поможет что-то типа такого
{recursive_cmds, [ct, eunit, clean]}.

Max Pantuhin

unread,
Apr 28, 2017, 3:07:16 AM4/28/17
to Erlang по-русски
Слишком сильно помогло.

Каталог apps/app1/src увидел скомпилировал там все и полез в каталог apps/app1/test где коммон тесты лежат
и их тоже решил скомпилировать,
А так как там
-compile(export_all).
то упал.



пятница, 28 апреля 2017 г., 9:09:38 UTC+3 пользователь mprize написал:

mprize

unread,
Apr 28, 2017, 10:34:33 AM4/28/17
to Erlang по-русски
:-)
а если в recursive_cmds оставить только eunit?
Reply all
Reply to author
Forward
0 new messages