2015-05-14 3 views
1

Я хочу написать сценарий, который строит, тестирует и развертывает мое приложение в тестовой среде. Я могу запустить тест manully с использованием SBT:Как проверить, не прошел ли тест sbt?

sbt test 

но это, кажется, не возвращает никакого значения (только сырые результаты строки теста).

Есть ли лучший способ проверить, если тест SBT не удалось, чем мое текущее решение:

TESTS_FAILED=`sbt test | grep "sbt.TestsFailedException" | wc -l` 

?

+0

Что выводится, когда sbt test не удалось? 'sbt test; Эхо $ ' – Cyrus

+0

@Cyrus стандартный вывод теста JUnit плюс резюме: ' [Ошибка] Ошибка: Всего 36, Не 1, ошибки 0, Зачет 35 [ошибка] Неудачные испытания: [ошибка] \t package.MyClassTest [ ошибка] (тест: тест) sbt.TestsFailedException: тесты неуспешно [error] Общее время: 15 с, завершено 14 мая 2015 г. 11:04:22 AM' – jasiustasiu

ответ

4

В Mac OS X, когда sbt test не работает, он возвращает 1, когда ему это удается, возвращается 0. Это похоже на то, что вам нужно.

Обратите внимание на то, что вы фиксируете стандартный вывод команды sbt test, что не совсем то, что вам нужно. В bash код возврата команды фиксируется в специальной переменной $?.

sbt test 
rc=$?; if [[ $rc != 0 ]]; then exit $rc; fi 
Смежные вопросы