在Perl测试文件中只运行一个命名的测试用例

在Perl测试文件中只运行一个命名的测试用例,perl,unit-testing,testing,Perl,Unit Testing,Testing,我试图找出是否可以在一个Perl测试文件中只运行一个测试用例。例如,考虑下面的Perl测试文件(从中复制): 当我使用命令prove-v test.t运行此文件时,我得到以下输出: test.t .. 1..2 ok 1 - My Testcase 1 ok 2 - My Testcase 2 ok 现在,我只想运行第二个测试用例,即mytestcase2。有没有一种方法可以在测试文件中只执行一个命名的测试用例?简短的回答是:没有,使用由test::simple(或test::More)和p

我试图找出是否可以在一个Perl测试文件中只运行一个测试用例。例如,考虑下面的Perl测试文件(从中复制):

当我使用命令
prove-v test.t
运行此文件时,我得到以下输出:

test.t .. 
1..2
ok 1 - My Testcase 1
ok 2 - My Testcase 2
ok

现在,我只想运行第二个测试用例,即
mytestcase2
。有没有一种方法可以在测试文件中只执行一个命名的测试用例?

简短的回答是:没有,使用由
test::simple
(或
test::More
)和
prove
命令提供的简单测试框架,无法从测试脚本中挑出一个特定的断言并只运行该断言

然而,Perl测试生态系统有一组丰富多样的选项可用。例如,
Test::Class
允许您在标准测试协议的顶部添加面向对象的层。这允许您将测试分组到方法中,添加setup和teardown方法,以及。在不修改测试脚本的情况下,您仍然无法从命令行完成所有操作,但这离您的要求更近了一步


当然,一个更简单的解决方案是将您想要的位复制到它自己的
.t
文件中并运行它。

简单的答案是:不,使用
test::simple
提供的简单测试框架(或
test::More
)而
prove
命令无法从测试脚本中挑出一个特定的断言并仅运行该断言

然而,Perl测试生态系统有一组丰富多样的选项可用。例如,
Test::Class
允许您在标准测试协议的顶部添加面向对象的层。这允许您将测试分组到方法中,添加setup和teardown方法,以及。在不修改测试脚本的情况下,您仍然无法从命令行完成所有操作,但这离您的要求更近了一步


当然,一个更简单的解决方案是将您想要的位复制到它自己的
.t
文件中并运行它。

有没有一种方法(可能通过命令行参数)可以跳过测试而不修改测试脚本?如果测试脚本中的测试需要花费大量时间来执行,而我只对其中一个测试感兴趣,我应该能够执行那个特定的测试。许多其他单元测试框架都有这种功能,比如JUnit、Google测试框架。有没有一种方法(可能通过命令行参数)可以跳过测试而不修改测试脚本?如果测试脚本中的测试需要花费大量时间来执行,而我只对其中一个测试感兴趣,那么我应该能够执行特定的测试。许多其他单元测试框架都有这种功能,比如JUnit、Google测试框架。
test.t .. 
1..2
ok 1 - My Testcase 1
ok 2 - My Testcase 2
ok