Мой проект Erlang управляется арматурой, он делится на разные модули.
-pro
|-- rel
|-- src
|-- test
|--- module1_tests.erl
|--- module2_tests.erl
и для каждого модуля *_tests.erl используйте Eunit Fixtures для среда настройки. Например,
module1_test_() ->
{setup,
fun setup/0,
fun clean_up/1,
fun (SetupData) ->
[
test_function(SetupData)
]
end}.
setup() ->
pro:start(),
ok.
clean_up(_) ->
pro:stop().
И Makefile это:
test:
ERL_AFLAGS="-config rel/pro/etc/app.config" $(REBAR) compile eunit skip_deps=true
Здесь я столкнулся с проблемой, так как у меня много тестовых модулей в test/, каждый тестовый модуль будет запускать и останавливать приложение для всего исполняемого потока. Иногда запуск приложения завершается сбоем, сообщается, что файл конфигурации app.config не найден, не знаю почему.
Итак, я думаю, есть ли способ запустить приложение перед всем тестовым модулем?