当测试失败时,会有一个输出指示测试的上下文,例如:
=================================== FAILURES ===================================
______________________________ Test.test_sum_even ______________________________
numbers = [2, 4, 6]
@staticmethod
def test_sum_even(numbers):
assert sum(numbers) % 2 == 0
> assert False
E assert False
test_preprocessing.py:52: AssertionError
如果我也想对通过的测试做同样的事情呢?这样我就可以快速检查传递给测试的参数是否正确?
我尝试了命令行选项行--full-trace
、-l
、--tb long
和-rpP
,但都不起作用。
你知道吗?
4条答案
按热度按时间drnojrws1#
执行带有
--verbose
标志的pytest将导致它在执行时列出每个测试的完全限定名称,例如:tyu7yeag2#
如果您只是要求通过的测试用例的标准输出,则需要将
-s
选项传递给pytest
以防止捕获标准输出。有关标准输出抑制的详细信息,请参阅pytest docs。368yc8dk3#
pytest
没有这个功能,它所做的是在Assert失败时向您显示来自异常的错误。一个解决方法是使用python的logging模块显式地包含您希望从通过的测试中看到的信息,然后使用
pytest
中的caplog fixture。例如,
func.py
的一个版本可以是:然后是
test_func.py
:如果您运行
pytest -s test_even.py
并且测试通过,则记录器将显示以下消息:test_even.py WARNING:my-sum-logger:Sum is Even
brgchamk4#
简单溶液
我刚在测试结束时引发了一个异常