我注意到,在Perl中,定制是将所有测试粘贴到t目录中.单元测试与功能测试如何分离?或者,为了使问题更简单和更明显,您如何将快速运行的测试与不那么快的测试分开?当所有测试一起运行时,测试需要太长时间才能在开发中常规使用,这是可惜的.
我想我可以设置一些环境变量,如QUICK_TEST,并根据其值跳过长测试.单独和功能测试是否分开?怎么样? (这不是一个民意测验 – 我只是想也许有一些惯用的解决方案.)
更新:到目前为止我已经来了:
package Test::Slow; use strict; use Test::More; BEGIN { plan(skip_all => 'Slow test.') if $ENV{QUICK_TEST}; } 1;
在附近的.t文件中:
# This is a slow test not meant # to run frequently. use Test::Slow; use Test::More;
似乎工作很好
附:现在可用作CPAN上的Test::Slow.
@R_404_323@
您可以将测试分成t类下的子目录,无论您想要什么分类方案.如果使用环境变量,建议使用默认值(如果未设置变量)来运行所有测试.我已经看到t /只包含在开发中经常运行的测试的情况,而其他测试被放在不同的目录下(例如t-selenium /).
我认为归结于一致性比你所做的选择更重要如果您一致,任何事情都会奏效.