如何告诉Perl的证明实用程序忽略某些测试?

时间:2012-12-12 15:29:36

标签: perl perl-prove

目前我像这样运行prove

prove -v -r .

有没有办法使用正则表达式排除文件?我在perldoc proveprove -H的输出中看不到。

2 个答案:

答案 0 :(得分:3)

通常做这样的事情:

$ find t/ -name '*.t' ! -name '*timeout*' | xargs prove -l

(跳过慢速超时测试)

答案 1 :(得分:1)

我设法通过使用子目录来做到这一点:

$ tree t/
t/
├── 01_tests.t
├── 02_tests.t
├── 03_tests.t
└── ignored
    └── 01_ignored.t

然后我执行常规测试:

$ prove -v t/*.t
t/01_tests.t ........ ok
t/02_tests.t ........ ok
t/03_tests.t ........ ok
Result: PASS

这可以在另一个上下文中执行忽略的测试:

$ prove -v t/ignored/
t/ignored/01_ignored.t ........ ok
Result: PASS

简单有效的解决方案,如果您的测试尚未存储在不同的子目录中。

为了简化操作并记录如何运行测试,我通常将其放在Makefile中。