Den*_*aia 5 python unit-testing
我使用Python的内置单元测试模块和我想写一个不重要了一些测试.
我的意思是,如果我的程序通过了这样的测试,那太好了!但是,如果它没有通过,这不是一个真正的问题,该程序仍然可以工作.
例如,我的程序旨在使用自定义类型"A".如果它无法使用"A",那么它就会被破坏.但是,为方便起见,大多数也应该使用另一种类型"B",但这不是强制性的.如果它不能与"B"一起使用,那么它就不会被破坏(因为它仍然适用于"A",这是它的主要目的).不能使用"B"并不重要,我将错过一个我可以拥有的"奖励功能".
另一个(假设的)例子是编写OCR时.该算法应该能够识别来自测试的大多数图像,但如果其中一些图像失败则可以.(不,我不是在写OCR)
有没有办法在unittest(或其他测试框架)中编写非关键测试?
实际上,我可能会使用print语句来表示那种情况下的失败.更正确的解决方案是使用警告:
http://docs.python.org/library/warnings.html
但是,您可以使用日志记录工具生成更详细的测试结果记录(即设置"B"类失败以向日志写入警告).
http://docs.python.org/library/logging.html
编辑:
我们在Django中处理这个问题的方式是我们有一些我们希望失败的测试,而我们还有其他基于环境跳过的测试.由于我们通常可以预测测试是否应该失败或通过(即如果我们无法导入某个模块,系统没有它,因此测试将无效),我们可以智能地跳过测试失败的测试.这意味着我们仍然会运行每个将通过的测试,并且没有"可能"通过的测试.当单元测试以可预测的方式执行时,单元测试最有用,并且能够在运行之前检测测试是否应该通过,这使得这成为可能.
Python 2.7(和3.1)添加了对跳过某些测试方法或测试用例以及将某些测试标记为预期失败的支持。
http://docs.python.org/library/unittest.html#skipping-tests-and-expected-failures
标记为预期失败的测试不会被计为 TestResult 上的失败。
| 归档时间: |
|
| 查看次数: |
1242 次 |
| 最近记录: |