我将使用装饰器将测试标记为xfail,并为它们提供一个特定的异常,预期会在应用程序的当前开发状态中发生。
据我了解http://pytest.org/latest/skipping.html中的文档,测试应该报告失败,如果测试现在失败或者错误有异常,则报告没有预期的失败。
实施是否与我理解的不同?
示例:
import pytest
@pytest.mark.xfail(raises=AttributeError)
def test_xfailure():
print "Hello"
raise NotImplemented()
运行它:
# py.test failtest.py
============================================================================= test session starts ==============================================================================
platform linux2 -- Python 2.6.6 -- py-1.4.26 -- pytest-2.6.0
plugins: cov, xdist, random
collected 1 items
failtest.py x
========================================================================== 1 xfailed in 0.04 seconds ===========================================================================
答案 0 :(得分:2)
解决了最新的py.test版本2.6.4!遗憾...
实际问题是,这似乎是pytest 2.6.0中的一个错误 项目中的开发环境是我们使用它有点过时了,我根本没有意识到2.6.0(也在示例输出中显示)和2.6.4之间的次要版本差异