JUnit не дает никакой информации относительно "ошибок" - PullRequest
16 голосов
/ 29 ноября 2008

Я использую Junit 4.4 и Ant 1.7. Если тестовый случай завершается с ошибкой (например, из-за того, что метод вызвал непредвиденное исключение), я не получаю никакой информации о том, что это за ошибка.

Мой build.xml выглядит так:

<target name="test" depends="compile">
<junit printsummary="withOutAndErr" filtertrace="no" fork="yes" haltonfailure="yes" showoutput="yes">
  <classpath refid="project.run.path"/>
  <test name="a.b.c.test.TestThingee1"/>
  <test name="a.b.c.test.NoSuchTest"/>
</junit>
</target>

Когда я запускаю «ant test», он говорит (например) 2 тестовых прогона, 0 сбоев, 1 ошибка. Там не написано «Нет такого теста, как NoSuchTest», хотя это вполне разумно и позволило бы мне выяснить причину ошибки.

Спасибо!

1010 * Дан *

Ответы [ 2 ]

32 голосов
/ 29 ноября 2008

Разобрался:)

Мне нужно было добавить «форматер» внутри блока junit.

<formatter type="plain" usefile="false" />

Что за пита.

1008 * Дан *

6 голосов
/ 29 ноября 2008

Если у вас будет много тестов, есть два изменения, которые вы можете рассмотреть:

  1. запускать все тесты вместо остановки при первой ошибке
  2. создать отчет, показывающий все результаты теста

И это довольно легко сделать с помощью задачи junitreport:

<target name="test">
    <mkdir dir="target/test-results"/>
    <junit fork="true" forkmode="perBatch" haltonfailure="false"
           printsummary="true" dir="target" failureproperty="test.failed">
        <classpath>
            <path refid="class.path"/>
            <pathelement location="target/classes"/>
            <pathelement location="target/test-classes"/>
        </classpath>
        <formatter type="brief" usefile="false" />
        <formatter type="xml" />
        <batchtest todir="target/test-results">
            <fileset dir="target/test-classes" includes="**/*Test.class"/>
        </batchtest>
    </junit>

    <mkdir dir="target/test-report"/>
    <junitreport todir="target/test-report">
        <fileset dir="target/test-results">
            <include name="TEST-*.xml"/>
        </fileset>
        <report format="frames" todir="target/test-report"/>
    </junitreport>

    <fail if="test.failed"/>
</target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...