С момента вопроса прошло более восьми лет, но все еще есть хорошее решение, не упомянутое в предыдущих ответах.
Как только вы используете EUnit, вы можете использовать некоторые из его "автоматических" функций.Одним из них является автоматический экспорт функции test/0
, содержащей все тесты для модуля.
Итак, если вы пишете свои тесты вместе с исходным кодом в том же модуле, все, что вам нужносделать это:
$ erl -noshell -run your_module test -run init stop
Если вы пишете тесты в отдельном, зависимом модуле (как вы должны), вы должны указать на этот модуль:
$ erl -noshell -run your_module_tests test -run init stop
Все это будетработает нормально, но тест не будет запускаться в подробном режиме, как требуется для OP, но это легко решить с помощью переменной окружения EUNIT
, установленной в verbose
.
Окончательная версия:
$ EUNIT=verbose erl -noshell -run your_module_tests test -run init stop
Веселитесь вместе с Erlang и EUnit!