0

py.test での xfail/skip の命令型および宣言型の使用は、同じように機能するはずだと常に考えていました。その間、命令スキップを含むテストを作成すると、テストに合格した場合でも、テストの結果は常に「xfail」になることに気付きました。

ここにいくつかのコードがあります:

import pytest

def test_should_fail():
    pytest.xfail("reason")

@pytest.mark.xfail(reason="reason")
def test_should_fail_2():
    assert 1

これらのテストを実行すると、常に次の結果が得られます。

============================= test session starts ==============================
platform win32 -- Python 2.7.3 -- pytest-2.3.5 -- C:\Python27\python.exe
collecting ... collected 2 items

test_xfail.py:3: test_should_fail xfail
test_xfail.py:6: test_should_fail_2 XPASS

===================== 1 xfailed, 1 xpassed in 0.02 seconds =====================

ユーザーマニュアルに書かれていることを正しく理解していれば、両方のテストを「XPASS」する必要があります。

これは py.test のバグですか、それとも何か問題がありますか?

4

1 に答える 1