我正在使用Test::More来测试我的应用程序。我有一个脚本run_tests.pl,它运行所有的测试。现在我想将它拆分为run_tests_component_A.pl和B,并从run_tests.pl运行两个测试套件。正确的方法是什么?Test::More有什么有用的方法吗?我没有使用任何构建系统。
run_tests.pl
run_tests_component_A.pl
yx2lnoni1#
标准做法是使用prove,而不是运行创建run_tests.pl来运行测试套件。说你有
prove
t/foo.t t/bar.t
然后,
prove t
t/foo.t
t/bar.t
prove t/foo.t
perl t/foo.t
perl -d t/foo.t
每个文件都是一个独立的程序,如果你需要在测试程序之间共享代码,你可以创建t/lib/Test/Utils.pm(或者其他),并在你的测试文件中使用以下代码:
t/lib/Test/Utils.pm
use FindBin qw( $RealBin ); use lib "$RealBin/lib"; use Test::Utils;
prove按字母顺序执行文件,因此通常对文件进行命名
00_baseline.t 01_basic_tests.t 02_more_basic_tests.t 03_advanced_tests.t
00测试测试模块是否可以加载,仅此而已。它通常会输出加载模块的版本,以帮助解决依赖问题。然后是更基本的测试。比如“如果这个不起作用,你就有大问题了”。如果基本的测试都不起作用,那么测试更复杂的特性就没有意义了。
00
1条答案
按热度按时间yx2lnoni1#
标准做法是使用
prove
,而不是运行创建run_tests.pl
来运行测试套件。说你有
然后,
prove
是prove t
的缩写。prove t
运行整个测试套件(t/foo.t
和t/bar.t
)。prove t/foo.t
运行该特定测试文件。perl t/foo.t
运行特定的测试文件,您将获得原始输出。perl -d t/foo.t
甚至允许您在调试器中运行测试。每个文件都是一个独立的程序,如果你需要在测试程序之间共享代码,你可以创建
t/lib/Test/Utils.pm
(或者其他),并在你的测试文件中使用以下代码:prove
按字母顺序执行文件,因此通常对文件进行命名00
测试测试模块是否可以加载,仅此而已。它通常会输出加载模块的版本,以帮助解决依赖问题。然后是更基本的测试。比如“如果这个不起作用,你就有大问题了”。如果基本的测试都不起作用,那么测试更复杂的特性就没有意义了。