gpt4 book ai didi

perl - 我应该如何处理无法修复的错误的失败测试

转载 作者:行者123 更新时间:2023-11-28 20:02:03 24 4
gpt4 key购买 nike

我有一组复杂的集成测试,使用 Perl 的 WWW::Mechanize 来驱动网络应用程序并根据特定的数据组合检查结果。有 20 多个子例程组成测试逻辑、遍历数据等。每个测试在不同的数据集上运行多个测试子例程。

Web 应用程序并不完美,因此有时错误会导致非常特定的数据组合测试失败。但是这些组合很少见,我们的团队很长一段时间都不会费心去修复这些错误;优先构建许多其他新功能。

那么我应该如何处理失败的测试?这只是每个数据组合几十个测试中的几个测试。1) 我不能让它失败,因为那样整个测试套件都会失败。2) 如果我们将它们注释掉,那意味着我们错过了对所有其他数据集进行测试的机会。3) 我可以在失败的特定数据集中添加一个标志,如果设置了该标志,则不运行测试,但随后我会在我的测试子例程中到处传递额外的标志。

执行此操作最干净、最简单的方法是什么?或者干净和简单是相互排斥的?

最佳答案

这就是TODO是为了。

With a todo block, the tests inside are expected to fail. Test::More will run the tests normally, but print out special flags indicating they are "todo". Test::Harness will interpret failures as being ok. Should anything succeed, it will report it as an unexpected success. You then know the thing you had todo is done and can remove the TODO flag.

The nice part about todo tests, as opposed to simply commenting out a block of tests, is it's like having a programmatic todo list. You know how much work is left to be done, you're aware of what bugs there are, and you'll know immediately when they're fixed.

Once a todo test starts succeeding, simply move it outside the block. When the block is empty, delete it.

关于perl - 我应该如何处理无法修复的错误的失败测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5457598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com