py.test报告跳过的测试

时间:2015-02-04 17:04:57

标签: python unit-testing pytest

我正在使用py.test -rfs获取有关失败和跳过测试的其他报告。

有两种方法可以跳过测试:

  1. 从测试用例内部调用pytest.skip(msg)
  2. 通过装饰测试用例:@pytest.mark.skipif(condition, msg)
  3. 在最终报告中,如果我使用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并不是真的有用。

    我当然可以将测试用例的名称放入消息中,但如果有更优雅的方式来更好地获取报告,那就太棒了。有谁知道吗?

1 个答案:

答案 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