在Perl中,我可以在一个文件中创建一个只在另一个文件中的测试运行后运行的文件吗?

时间:2013-03-08 13:02:21

标签: perl testing

我在我编写的Perl模块上运行测试文件,我希望有一个条件,其中一些测试仅在其他测试成功运行后运行(但仍将它们保存在单独的文件中)。

我在看Test::Builder,但我不认为它适合跨文件测试。

只是为了解释我为什么要这样做;我的模块中的每个子程序都有一个测试文件。这些子程序中的一些从其他子程序传递大的哈希值,这些子程序难以复制用于测试目的。

因此,我不想花费几个小时来尝试对可测试的哈希进行硬编码,而是希望从代码中传递一个代码,只是在生成该哈希的子例程被测试之后。

我希望这是有道理的!我可以编写一个脚本来按照一定的顺序运行测试,但是我认为Perl测试模块中可能已经有一个我没见过的功能。在使用模块时,理想情况下我希望能够运行测试而不必使用'make test'位。

1 个答案:

答案 0 :(得分:2)

Perl测试工具似乎按字母顺序运行测试文件。这就是为什么如此多的CPAN发行版都有以数字开头的测试文件 - 这样作者就可以控制测试执行的顺序。例如,如果某人使用prove -s运行这些测试,那将会破坏。

通常,测试文件应被视为完全独立的测试单元。您应该能够以任何顺序运行所有测试,而不会影响任何其他测试。如果两个测试相互依赖,那么它们应该在同一个文件中。

你还没有解释为什么你如此热衷于将这些测试放在单独的文件中。也许这就是你应该质疑的假设。

相关问题