Přeskočit test, místo toho, zdobení každý testovací funkce s @pytest.mark.skipif()?

0

Otázka

Mám pytest soubor, který vyžaduje prostředí je nastaven. Tak jsem se přidat následující natěrač pro každou funkci.

@pytest.mark.skipif('password' not in os.environ,
                    reason='Environment variable "password" not set.')
def test_1(mock):
    ....

@pytest.mark.skipif('password' not in os.environ,
                    reason='Environment variable "password" not set.')
def test_2(mock):
    ....

@pytest.mark.skipif('password' not in os.environ,
                    reason='Environment variable "password" not set.')
def test_3(mock):
    ....

Je to způsob, jak přeskočit všechny testovací místo toho, zdobení každý test funkce?

BTW, to jen přeskočit testy s následující zprávou. Je to způsob, jak zobrazit upozornění, informace o chybějící proměnné prostředí?

====== 25 skipped in 5.96s =======
pytest python
2021-11-24 03:54:51
1

Nejlepší odpověď

2

Můžete použít svítidla s autouse=True to znamená přeskočení pro vás:

@pytest.fixture(autouse=True)
def skip_if_no_password():
    if 'password' in os.environ:
        yield
    else:
        pytest.skip('Environment variable "password" not set.')

Další možnost je dát na testy do třídy a dát značku na třídě, místo, jak je uvedeno Luke Nelson v komentářích.

2021-11-24 12:10:19

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................