2017-10-20 21 views
2

問題は私の与えられたフィクスチャ関数に外部依存関係があり、それが "エラー"(到達不能ネットワーク/不十分なリソースなど)を引き起こしていることです。pytestフィクスチャをスキップする方法はありますか?

このフィクスチャに依存するテストをスキップして、フィクスチャをスキップしたいと思います。

この文句を言わない仕事のようなものをやって:

import pytest 

@pytest.mark.skip(reason="Something.") 
@pytest.fixture(scope="module") 
def parametrized_username(): 
    raise Exception("foobar") 
    return 'overridden-username' 

これは

_______________________________ ERROR at setup of test_username _______________________________ 

    @pytest.mark.skip(reason="Something.") 
    @pytest.fixture(scope="module") 
    def parametrized_username(): 
>  raise Exception("foobar") 
E  Exception: foobar 

a2.py:6: Exception 

pytest器具をスキップする離れ権利は何になりますか?

+0

'try/except'ブロックの中に定義を埋め込むことができますか? –

+0

@PaulH - テストは失敗します。テストをスキップするにはどうしたらいいですか? –

+0

私はあなたがテストを個別にマークするか、テストクラスの中に入れなければならないと思って、それをスキップします。 –

答えて

1

はい、あなたはこれを簡単に行うことができます

import pytest 

@pytest.fixture 
def myfixture(): 
    pytest.skip('Because I want so') 

def test_me(myfixture): 
    pass 

$ pytest -v -s -ra r.py 
r.py::test_me SKIPPED 
=========== short test summary info =========== 
SKIP [1] .../r.py:6: Because I want so 

=========== 1 skipped in 0.01 seconds =========== 

は内部的には、pytest.skip()機能がOutcomeExceptionから継承された例外Skippedを発生させます。これらの例外は、テストの結果をシミュレートするために特別に処理されますが、テストに失敗しないようにしてください()。

+1

私を教育してくれてありがとう、@ Sergey。 –

関連する問題