Проваливая тесты JUnit, не повреждая мой скрипт Ant как я ожидаю?
Мой непрерывный сервер интеграции выполняет скрипт Ant, который называет что-то как: тесты выполнения/tests/ant
Мой тестовый прогон JUnit, но с ошибками: тесты выполнения: [эхо] тестовый помощник выполнения. [эхо] тесты Запускающего... [должностное лицо] [должностное лицо] com.zedray.stuff. FooBarTest:.... [должностное лицо] com.zedray.stuff. FooBarTest:..... INSTRUMENTATION_RESULT: ошибка shortMsg=Some в Вашем коде. [должностное лицо] INSTRUMENTATION_RESULT: longMsg=java.security. InvalidParameterException: Некоторая ошибка в Вашем коде [должностное лицо] INSTRUMENTATION_CODE: 0
Ошибки в порядке, но мой сценарий сборки продолжает идти (в конечном счете публикация моего поврежденного приложения моим тестерам - плохо!). То, что я ожидал бы, - чтобы instrimentaiton бросил ошибку сборки, таким образом, мой непрерывный сервер интеграции (TeamCity в этом случае) понимает, что что-то пошло не так, как надо и сообщает о поврежденной сборке. "failonerror" уже установлен в соответствующем macrodef, таким образом, я не уверен, что еще я могу сделать?
/tests/build.xmlЗапущение тестов...
Какие-либо идеи/предложения о том, как зафиксировать это?
Отношения Mark
Задача ant JUnit по умолчанию запускает все тесты. Есть два решения этой проблемы.
Самое простое решение - установить свойство haltonerror
в true, и сборка завершится неудачей при первом сбое теста.
Чуть более сложное решение (и я предпочитаю его) - установить свойство failureProperty
так, чтобы все тесты выполнялись. Это позволит вам узнать, сколько тестов провалилось, а не только первый тест, который провалился. Это потребует дополнительной работы ant, потому что вам нужно добавить строку после тестов junit, например, такую:
<fail message="tests failed" if="failureProperty"/>