我正在使用py.test -rfs
获取有关失败和跳过测试的其他报告。
有两种方法可以跳过测试:
pytest.skip(msg)
@pytest.mark.skipif(condition, msg)
在最终报告中,如果我使用pytest.skip()
,我会得到以下形式的行:
path/testmodule:linenumber: message`
测试用例的名称(不存在)会很棒,但这样做肯定足够好。
但是当我使用pytest.mark.skipif()
时,我得到的是:
SKIP [1] /usr/lib/python2.7/dist-packages/_pytest/skipping.py:132: message
甚至不是测试模块名称。从py.test内部始终是同一行的路径ifself并不是真的有用。
我当然可以将测试用例的名称放入消息中,但如果有更优雅的方式来更好地获取报告,那就太棒了。有谁知道吗?
答案 0 :(得分:3)
而不是-rfs
,您应该使用-v
:
$ py.test -v t.py
============================= test session starts ==============================
platform linux2 -- Python 2.7.8 -- py-1.4.23 -- pytest-2.6.0 -- /usr/bin/python
collected 2 items
t.py@3::test_1 SKIPPED
t.py@7::test_2 SKIPPED
========================== 2 skipped in 0.01 seconds ==========================
以上输出来自以下文件:
import pytest
def test_1():
pytest.skip('msg')
@pytest.mark.skipif(True, reason='msg')
def test_2():
pass