zou*_*oul 14 testing perl unit-testing
我注意到在Perl中,自定义是将所有测试都粘贴到t目录中.你如何将单元测试与功能测试分开?或者,为了使问题更简单,更明显,如何将快速运行的测试与不快速运行的测试分开?当所有测试一起运行时,测试需要很长时间才能在开发中经常使用,这很可惜.
我想我可以设置一些环境变量,QUICK_TEST并根据其值跳过长测试.你是否将单元和功能测试分开?怎么样?(这不是一个民意调查 - 我只是想也许有一些惯用的解决方案.)
更新:到目前为止,我已经到了这个:
package Test::Slow;
use strict;
use Test::More;
BEGIN {
plan(skip_all => 'Slow test.') if $ENV{QUICK_TEST};
}
1;
Run Code Online (Sandbox Code Playgroud)
在附近的.t文件中:
# This is a slow test not meant
# to run frequently.
use Test::Slow;
use Test::More;
Run Code Online (Sandbox Code Playgroud)
它似乎工作得很好.
PS现在可用作测试::慢速 CPAN.
Bra*_*ert 10
运行prove --state=all,save一次以获取一些信息.prove.
运行prove --state=slow -j9如果你有一个多核心机,你的测试可以在同一时间运行.这将导致您在开始时开始运行时间最长的测试,以便在完成所有其他测试之前更有可能完成测试.这可以减少完成的总时间,而不会阻止任何测试运行.
您当然可以将测试分成t下的子目录,使用您想要的任何分类方案.如果您使用环境变量,我建议使用默认值(如果未设置变量)运行所有测试.我已经看到t /只包含将在开发中常规运行的测试的情况,而其他测试则放在不同的目录下(例如t-selenium /).
我认为这归结为一致性比你做出的选择更重要; 如果你保持一致,几乎任何事情都会奏效.
| 归档时间: |
|
| 查看次数: |
406 次 |
| 最近记录: |