gpt4 book ai didi

python - 非关键单元测试失败

转载 作者:太空狗 更新时间:2023-10-30 00:21:47 25 4
gpt4 key购买 nike

我正在使用 Python 的内置 unittest模块,我想写一些不重要的测试。

我的意思是,如果我的程序通过了这样的测试,那就太好了!但是,如果它没有通过,那也不是真正的问题,该程序仍然可以运行。

例如,我的程序设计为使用自定义类型“A”。如果它不能与“A”一起工作,那么它就坏了。然而,为了方便起见,它的大部分也应该与另一种类型“B”一起工作,但这不是强制性的。如果它不能与“B”一起工作,那么它并没有坏(因为它仍然可以与“A”一起工作,这是它的主要目的)。无法使用“B”并不重要,我只会错过我本可以拥有的“额外功能”。

另一个(假设的)示例是编写 OCR。该算法应该可以识别测试中的大多数图像,但如果其中一些图像失败也没关系。 (不,我不是在写 OCR)

有什么方法可以在单元测试(或其他测试框架)中编写非关键测试吗?

最佳答案

实际上,在这种情况下,我可能会使用打印语句来指示失败。更正确的解决方案是使用警告:

http://docs.python.org/library/warnings.html

但是,您可以使用日志记录工具生成更详细的测试结果记录(即设置“B”类故障以将警告写入日志)。

http://docs.python.org/library/logging.html

编辑:

我们在 Django 中处理这个问题的方式是,我们有一些我们预计会失败的测试,我们有一些我们根据环境跳过的测试。由于我们通常可以预测测试应该失败还是通过(即如果我们不能导入某个模块,系统没有它,因此测试将无法运行),我们可以智能地跳过失败的测试。这意味着我们仍然运行每一个将通过的测试,并且没有“可能”通过的测试。当单元测试以可预测的方式做事时,它们是最有用的,并且能够在我们运行测试之前检测它是否应该通过,这使得这成为可能。

关于python - 非关键单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406552/

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