我们在一个单独的python文件中定义了所有的自定义断言,这个文件不是一个测试模块。在
例如:
custom_asserts.pyclass CustomAsserts(object):
def silly_assert(self, foo, bar):
assert foo == bar , 'some error message'
如果我们在测试中直接使用assert,我们将获得关于断言错误的额外信息,这非常有用。在
测试中直接使用断言的输出:
^{pr2}$
但我们发现,如果调用在单独模块中定义的断言方法,则不会显示额外的信息。在from custom_asserts import CustomAsserts
asserts = CustomAsserts()
def test_silly():
asserts.silly_assert('foo', 'bar')
运行测试后的输出:> assert 'foo' == 'bar', 'some error message'
E AssertionError: some error messagepytest only rewrites test modules directly discovered by its test
collection process, so asserts in supporting modules which are not
themselves test modules will not be rewritten.
所以我的问题是,有没有一种方法可以让pytest像test模块一样对其他模块进行相同的断言重写?或者有什么老套的方法来达到这个目的?在