【问题标题】:How can I tell Perl's prove utility to ignore certain tests?我如何告诉 Perl 的证明实用程序忽略某些测试?
【发布时间】:2012-12-12 15:29:35
【问题描述】:

目前我像这样运行prove

prove -v -r .

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

【问题讨论】:

  • 没有,但我发誓我在几周前看到了一篇文章,可能是在 blogs.perl.org 上,有人致力于使这成为可能。我正在查看我的@perlbuzz Twitter 档案,但在那里没有看到。对不起。

标签: perl perl-prove


【解决方案1】:

通常会这样做:

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

(跳过慢速超时测试)

【讨论】:

  • 太棒了! (虽然我建议在命令中添加一个 \ 到 *s)
【解决方案2】:

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

$ 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

这将在另一个上下文中执行 ignored 测试:

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

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

为了使其更易于使用并记录如何运行测试,我通常将它们放在Makefile 中。

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 2019-06-27
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多