是否有工具可以在Perl应用程序的目录树中查看文件更改,并在每次保存对某个模块的更改时重新运行测试套件?类似于masak’s tote的东西。
答案 0 :(得分:5)
一些测试::连续链接:
答案 1 :(得分:3)
Win32::FileNotify
可以帮助监控文件系统的更改。
答案 2 :(得分:3)
旧学校的unix解决方案是编写一个Makefile并通过一个cron作业定期触发(通常每分钟一次),如果出现问题,请将结果邮寄给你。
或者,如果您使用修订控制系统(如svn),则可以使用提交挂钩在提交文件时启动构建/测试周期。
您可以做的另一件事是在编辑器周围编写一个包装器脚本(这样当您关闭或保存文件时,会触发构建/测试周期。)
答案 3 :(得分:2)
执行此操作的基本方法是通过源代码控制和持续集成包,例如Smolder。签入文件时,CI服务器会注意到更改并为您运行测试套件。
许多CI产品会为您收集交叉运行信息,并可以向您显示测试,测试封面等方面的趋势。
答案 4 :(得分:1)
具有讽刺意味的是,我本周刚刚将了一些copyout.rb移植到了PHP。 http://joshribakoff.com/?p=106
答案 5 :(得分:1)
我不知道任何通用文件系统监视小部件,但这里是Perl特定的一半。
sub run_tests {
my $prove_out = `prove -lr`;
my $tests_passed = $? == 0;
return "" if $tests_passed;
return $prove_out;
}
这使用了Test :: Harness 3附带的prove
实用程序。它在测试失败时退出非零值。将其插入到您的文件系统监视器中并进行设置。
答案 6 :(得分:0)
我还没有设法在Windows上成功安装Test::Continuous
,我使用以下脚本,它对我来说非常好用:
use File::ChangeNotify;
$| = 1;
my $watcher = File::ChangeNotify->instantiate_watcher(
directories => [ 't', 'lib' ],
filter => qr/\.t|\.pl|\.pm/,
);
while (my @events = $watcher->wait_for_events) {
print `prove -l -r -t --timer`;
}