Как мне указать TAP :: Harness :: Junit в make-файле perl? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть Makefile.PL, использующий MakeMaker для моего модуля perl, например:

#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';

use 5.008;

use ExtUtils::MakeMaker;

WriteMakefile
(
    NAME          => 'MyModule',
    AUTHOR        => 'Subu',
    LICENSE       => 'perl',
    PREREQ_PM     => {
        'File::Basename' => '0',
    },
    TEST_REQUIRES => {
        'Test::More'       => '0.47',
        'Test::MockModule' => 'v0.170.0',
        'Test::MockObject' => '1.20180705',
        'Devel::Cover'     => '1.31',
        'Test::File'       => '1.443'
    },
    BUILD_REQUIRES => {
        'Log::Log4perl'  => '1.49',
        'JSON::Parse'    => '0.55',
        'Time::Piece'    => '1.33',
        'Text::CSV'      => '1.97'
    },
    EXE_FILES => [
        'src/main/perl/MyModule/main.pl'
    ],

    test => {TESTS => 'src/test/perl/MyModule/*/*.t 
src/test/perl/MyModule/*/*/*.t'}

);

Я могу запускать тесты, используя

perl Makefile.PL
make 
make test

Однако я бы хотелиметь выходные данные, отформатированные с использованием TAP :: Harness :: Junit.Как мне указать это в make-файле?

Я знаю, что могу запустить тесты с помощью proof

prove --formatter TAP::Formatter::JUnit *.t

Но я хотел знать, есть ли способ, которым я могу вставить это в мой make-файл.

1 Ответ

0 голосов
/ 22 ноября 2018

Makefile.PL предназначен в первую очередь для того, чтобы сделать ваши модули устанавливаемыми через cpan.Например, make test будет запущено во время установки модуля, чтобы убедиться, что он работает правильно в целевой системе.С этой целью изменение форматера (и добавление дополнительной зависимости) не поможет.

Makefile.PL не обязательно является местом для вашего личного рабочего процесса разработки или для любых сценариев непрерывной интеграции.Например, если вы хотите генерировать отчеты о тестировании JUnit на сервере Jenkins, вы можете поместить команду prove --formatter TAP::Formatter::JUnit *.t в файл Jenkinsfile.Если вы предпочитаете писать Make-файлы, вы можете использовать отдельный Make-файл для своих личных сценариев разработки, хотя вам придется использовать make -f MyMakefile test для его вызова.

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