我有一个使用MakeMaker的Makefile.PL这样的我的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格式化输出。如何在makefile中指定它?
我知道我可以通过证明运行测试
prove --formatter TAP::Formatter::JUnit *.t
但是我想知道是否可以将其插入我的makefile中。
答案 0 :(得分:2)
Makefile.PL
主要用于使您的模块可以cpan安装。例如,make test
将在模块安装期间运行,以验证其在目标系统上是否正常运行。为此,更改格式化程序(并添加额外的依赖项)没有帮助。
Makefile.PL
不一定是您个人开发工作流程或任何持续集成脚本的地方。例如。如果要在Jenkins服务器上生成JUnit测试报告,则可能需要将prove --formatter TAP::Formatter::JUnit *.t
命令放入Jenkinsfile中。如果您更愿意编写Makefile,则可以使用一个单独的Makefile进行个人开发,尽管您必须使用make -f MyMakefile test
来调用它。