2008-11-29 6 views
14

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

Моя 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> 

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

Спасибо!

Дан

ответ

31

Фигурные это :)

мне нужно добавить "форматировщик" внутри блока JUnit.

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

Что такое PITA.

Дана

+0

+1 У меня просто была эта ошибка, и это сработало отлично. Благодаря! – 2010-05-04 17:11:27

6

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

  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>