我有一个带有 MakeMaker 生成的 Makefile 的模块,我想make test
并行运行我的单元测试 ()。Test::Harness接受例如HARNESS_OPTIONS=j4
使用 4 个线程。但是我看不到如何调整MakeMaker 的测试目标来设置这个变量。
现在我可以HARNESS_OPTIONS=j4
在我的中导出,~/.bashrc
但在每次使用 Test::Harness 的测试运行时强制执行它似乎很奇怪。如果我有不应该在另一个项目中并行运行的测试怎么办?
我make -j4 test
没有看到任何改善。make test
运行
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/*/*.t
所以我猜即使make
使用多个线程,Test::Harness 也可能不支持这一点,或者make
可能不会将此信息传递给 Test::Harness。
目前这只是为了加快我的测试。我的模块是一个内部模块,我不太担心将这个选项强加给模块的任何用户。但是,如果我可以在例如我不发布的配置文件中定义此选项,那也可以。
说到配置文件:我可以prove -j4 t/
并行运行和运行测试。因此,一个选项可能是告诉 MakeMaker 使用 运行测试prove
,但我也没有看到配置它的方法。
我如何告诉 MakeMaker 并行运行这个项目的测试?