Я думаю, что наконец-то получил полный ответ на этот вопрос: благодаря взглядам FailedDev.
Во-первых, убедитесь, что у вас переменная $ {reports.dir}, указав каталог для отчетов:
<property name="reports.dir" value="reports" />
Затем, когда мы начинаем кодировать тестовые инструкции junit:
<target name="test" depends="compile">
Затем создайте необходимые каталоги для отчетов:
<mkdir dir="${reports.dir}" />
<mkdir dir="${reports.dir}/tmp" />
<mkdir dir="${reports.dir}/style" />
<mkdir dir="${reports.dir}/final" />
Поскольку у нас есть сканер отчетов,мы можем установить для haltonfailure значение no и потерпеть неудачу после (прокрутите вниз).
<junit printsummary="yes" failureproperty="junit.failed" haltonfailure="no" fork="yes" forkmode="once">
<jvmarg value="-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl" />
<classpath refid="common.classpath" />
<classpath>
<pathelement location="${build.dir}" />
<pathelement location="${src.dir}" />
</classpath>
<formatter type="xml" />
<batchtest todir="${reports.dir}">
<fileset dir="${test.dir}">
<include name="**/Test*.java" />
<exclude name="**/AllTests.java" />
<exclude name="**/*.properties" />
<exclude name="**/*.xml" />
</fileset>
</batchtest>
</junit>
Теперь вот вам и совет по другим вопросам: запустите отчет junit.
<!-- Capture all failures, simple debugging statements. -->
<junitreport>
<fileset dir="${reports.dir}/tmp">
<include name="*.xml" />
</fileset>
<report todir="${reports.dir}/final" />
</junitreport>
И, наконец, мы можем напрямую извлекать xml-файлы из-за ошибок:
<!-- This could be its own task, i.e., a java class which directly processed junit test data. -->
<echo message="Now checking xml test results for errors" />
<exec executable="grep" error="/dev/null">
<arg value="-r" />
<arg value="-m" />
<arg value="1" />
<arg value="-rl" />
<arg value="errors=\"[1-9]\"" />
<arg value="${reports.dir}" />
</exec>
Теперь, поскольку мы не ошибаемся раньше (скорее мы запускаем всю сборкуТаким образом, мы можем видеть, какие тесты провалились, если таковые имеются), мы все равно должны уведомить сборщика о том, что мы провалились ... Это делается с помощью синтаксиса fail-if:
<fail if="junit.failed" message="FAILING - unit tests failed." />
<!-- Now, we check if there were failures, and output the results -->
</target>
Удаление моих комментариевБлок кода должен работать отлично, если вы вставите его в свою сборку.