2

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

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

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

因此,与其花几个小时尝试对可测试的哈希进行硬编码,不如只在测试了生成该哈希的子例程之后,才从代码中传递一个。

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

4

1 回答 1

2

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

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

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

于 2013-03-08T14:24:02.140 回答