Если у вас уже есть тесты, использующие Test::More
или т.п., тогда использовать prove --formatter TAP::Formatter::JUnit
- самый простой способ. Вы не изменяете ни один из ваших тестов или кода Perl и получаете вывод JUnit, который используют инструменты на основе Java.
Мы используем эту настройку с Hudson, чтобы мы могли отслеживать наши тесты и получать хорошие отчеты об ошибках тестирования по мере необходимости из встроенных инструментов Hudson без особых искажений. Наша сборка основана на make
, но это единственное реальное отличие от вашей настройки.
Это означает, что вы должны иметь возможность запускать prove
как внешнюю задачу и получать преимущества без необходимости значительного изменения инструментов Ant, если это неясно.
В зависимости от того, какой Perl вы установили, вы можете иметь или не иметь prove
. Run
perl -MTest::Harness -e'print "$Test::Harness::VERSION\n"'
чтобы узнать, какая у вас версия - 3.00 или лучше будет иметь prove
; в идеале вы должны установить 3.23, чтобы получить лучшую функциональность:
sudo cpan Test::Harness TAP::Formatter::JUnit
Устанавливает самую последнюю версию Test :: Harness, TAP :: Formatter :: JUnit и все необходимые предварительные условия. Попробуйте внешний процесс с
prove --formatter TAP::Formatter::JUnit your/testsuite/directory/
Вы должны получить файл JUnit XML в конце prove
прогона. Если это все работает, добавьте его в Ant с помощью
<target name="run">
<exec executable="prove">
<arg value="--formatter" />
<arg value="TAP::Formatter::JUnit" />
<arg path="your/testsuite/directory/" />
</exec>
Ant документация для "Exec"
(Я считаю, что это правильный синтаксис Ant для запуска внешней программы, но я не специалист по Ant.)