Как запустить тесты Perl и объединить результаты с отчетами JUnit в Ant? - PullRequest
4 голосов
/ 04 ноября 2010

Я бы хотел запустить Perl-тесты под Ant и создать вывод XML в формате, аналогичном формату, созданному задачей Ant JUnit .

Я понимаю, что форматеры TAP :: Formatter :: JUnit и TAP :: Harness :: JUnit существуют, но, поскольку у меня нет опыта работы с Perl, я не знаю, где для начала.

Ответы [ 2 ]

5 голосов
/ 18 ноября 2010

Если у вас уже есть тесты, использующие 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.)

0 голосов
/ 26 июля 2013

Альтернативой TAP::Formatter::JUnit является TAP::Harness::JUnit. Например:

prove --harness TAP::Harness::JUnit t

Я обнаружил, что TAP::Formatter::JUnit не устанавливается в Windows, тогда как TAP::Harness::JUnit, кажется, работает везде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...