Опять тяпница, опять хорошее предпразничное настроение и опять мой мозг разрывается в выборе из той кучи бестолковых идей, которые в нем витают...
Однажды переводил тесты из JUnit на TestNG и столкнулся с одной маленькой проблеммкой. А проблеммка эта заключается в том, что CruiseControl нивкакую не соглашается понимать результаты тестов от TestNG, даже за пиво :)
Покопался в инете, нашел одну вот такую вещь:
TestNG contains a listener that takes the TestNG results and outputs an XML file that can then be fed to JUnitReport.
В общем все решается просто - одним антовским таксом:
<target name="reports">
<junitreport todir="test-report">
<fileset dir="test-output">
<include name="**/*.xml"/>
</fileset>
<report format="noframes" todir="test-report"/>
</junitreport>
</target>
Но здесь есть еще одно но. Мой проект не использует ant, все базируется на maven, и мне бы очень не хотелось добавлять в него еще и антовский таск. На помощь мне в сложившейся ситтуации пришел плагин maven-antrun-plugin. Все что нужно, это переместить антовский таск в мавеноский pom.xml и делается это следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<configuration>
<tasks>
<junitreport todir="${project.build.directory}/surefire-reports">
<fileset dir="${project.build.directory}/surefire-reports">
<include name="**/*.xml"/>
</fileset>
<report format="noframes" todir="${project.build.directory}/surefire-reports"/>
</junitreport>
</tasks>
</configuration>
</plugin>
Теперь запускаем antrun:run и... все готово. Тесты сконвертились, CruiseControl доволен, а мы идем пить тяпничное пиво.