Pytest, как игнорировать класс установки в тестовом приспособлении для автоматического использования

Приведенный ниже код запускается после каждой функции, включая класс установки. Я не создаю экземпляр перед фактическими тестами, поэтому я не хочу, чтобы он запускался после метода setup_class. Можете ли вы посоветовать, могу ли я изменить подпись, чтобы она не запускалась после установки?

      @pytest.fixture(autouse=True)
def teardown_module(self):
    Log.test_teardown("Deleting instance")
    Utils.compute_utils().delete_instance_and_wait_for_state(
        TestAutoValidateCpuAlignment.instance_id, teardown=True)

1 ответ

Это можно сделать более эффективно, используя . Объединитеteardown_moduleиcreate_moduleсветильники в один, который делает и то, и другоеyieldмежду операциями. Таким образом, он создаст ваш экземпляр, выполнит тесты и затем разрушит его.

      @pytest.fixture(autouse=True)
def instance_module(self):
    try:
        Log.test_teardown("Creating instance")
        Utils.compute_utils().create_instance_and_wait_for_state(
            TestAutoValidateCpuAlignment.instance_id, teardown=True)
    
        yield
    except Exception as e:
        # do something with the exception
    finally:
        Log.test_teardown("Deleting instance")
        Utils.compute_utils().delete_instance_and_wait_for_state(
            TestAutoValidateCpuAlignment.instance_id, teardown=True)
Другие вопросы по тегам