Python 的单元测试 `assertCouldNotTest`?
Python's unittest `assertCouldNotTest`?
我正在使用 Python's unittest module to do some testing that some probability density functions that I have implemented integrate to 1. To test this I am using Scipy's quad 功能:
integral, err = integrate.quad(my_pdf, -float('inf'), float('inf'))
self.assertTrue(isclose(integral, 1))
其中 isclose
来自 Python's math。对于某些 PDF,碰巧 err
> 1 而 integral
“离 1 很远”,我认为这是失败的。然而,这不是 my_pdf
的失败,而是测试方法的失败。为了避免将此标记为失败,我可以做
if err > 1:
continue
但在这种情况下,我完全跳过了这个案例,没有任何线索它发生了。
是否有可能以某种方式在 unittest
中标记此类故障?类似
if err > 1:
self.couldNotTest()
这样最后 unittest 会告诉我无法执行的测试数量?
这总体上听起来很粗略(如果积分远离 1 的 pdf 不受支持,这是预料之中的,那么您首先为什么要尝试测试它们?)
无论如何,我认为你正在寻找 TestCase.skipTest
我正在使用 Python's unittest module to do some testing that some probability density functions that I have implemented integrate to 1. To test this I am using Scipy's quad 功能:
integral, err = integrate.quad(my_pdf, -float('inf'), float('inf'))
self.assertTrue(isclose(integral, 1))
其中 isclose
来自 Python's math。对于某些 PDF,碰巧 err
> 1 而 integral
“离 1 很远”,我认为这是失败的。然而,这不是 my_pdf
的失败,而是测试方法的失败。为了避免将此标记为失败,我可以做
if err > 1:
continue
但在这种情况下,我完全跳过了这个案例,没有任何线索它发生了。
是否有可能以某种方式在 unittest
中标记此类故障?类似
if err > 1:
self.couldNotTest()
这样最后 unittest 会告诉我无法执行的测试数量?
这总体上听起来很粗略(如果积分远离 1 的 pdf 不受支持,这是预料之中的,那么您首先为什么要尝试测试它们?)
无论如何,我认为你正在寻找 TestCase.skipTest