Ви можете позначити тест за допомогою декораторів skip
та, skipif
якщо хочете пропустити тест pytest
.
Пропуск тесту
@pytest.mark.skip(reason="no way of currently testing this")
def test_func_one():
...
Найпростіший спосіб пропустити тест - це позначити його skip
декоратором, який може бути переданий необов’язково reason
.
Також можна обов’язково пропустити під час виконання тесту або налаштування, викликавши pytest.skip(reason)
функцію. Це корисно, коли під час імпорту неможливо оцінити стан пропуску.
def test_func_one():
if not valid_config():
pytest.skip("unsupported configuration")
Пропуск тесту на основі стану
@pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
def test_func_one():
...
Якщо ви хочете пропустити на основі умовного, ви можете використовувати skipif
замість цього. У попередньому прикладі тестова функція пропускається при запуску на інтерпретаторі раніше, ніж Python3.6.
Врешті-решт, якщо ви хочете пропустити тест, оскільки ви впевнені, що він невдалий, ви можете також розглянути можливість використання xfail
маркера, щоб вказати, що ви очікуєте тестування.
.skip
що є у Mocha (Node.js)?it('tests something'...)
->it.skip('tests something'...)
що відключить конкретний тест. У нього також є зручна протилежність:.only
яка буде запускати лише цей тест і нічого іншого.