Как заставить jmunit запускать все тесты и по-прежнему завершаться неудачей в конце, если какие-либо тесты завершились неудачей

#unit-testing #ant #java-me #junit

#модульное тестирование #ant #java-me #junit

Вопрос:

Когда я выключаю haltonfailure или haltonerror в моих тестах jmunit, подобных этому:

 <jmunit haltonerror="false" haltonfailure="false" failureproperty="testfailure">
    <formatter type="xml" />
    <classpath>
        <path path="${jar_location}" />
        <path path="${build}" />
    </classpath>
    <!-- Add  -->
    <test name="com.example.tests.Test1" todir="${reports}" />
    <test name="com.example.tests.Test2" todir="${reports}" />
    <test name="com.example.tests.Etc" todir="${reports}" />
</jmunit >
  

Сборка выполняется успешно, даже если некоторые тесты завершились неудачей. Если я включу остановки, то, конечно, это остановится сразу после первого сбоя. Я хочу, чтобы все тесты выполнялись независимо от того, сколько из них завершилось неудачей, но если КАКОЙ-либо из них завершился неудачей, сборка не будет успешной. Причина, по которой я хочу этого, заключается в том, чтобы отчеты могли правильно показывать, сколько проходов и сбоев, и какие тесты завершаются неудачей.

Как мне этого добиться? и / или я думаю, что хочу, чтобы все тесты выполнялись с ошибками?

Ответ №1:

Проще простого:

Вам нужно добавить команду

 <fail message="Something went wrong. Please check the test results." if="testfailure" />
  

к цели, которая содержит вашу команду jmunit, после самой команды jmunit.

Таким образом, задача jmunit установит переменную testfailure при сбое одного из тестов, а команда fail сделает сборку неудачной, если это свойство установлено.

Надеюсь, это поможет.