根据环境变量阻止来自 运行 的所有 python 单元测试

Prevent all python unittests from running based on environment variable

如果某个环境变量未设置为特定值,有没有办法阻止所有单元测试 运行ning?

例如我只想测试 运行 if os.getenv(DB_URL) returns sqlite:///:memory:.

我想全局配置它,这样我就不需要检查每一个测试class/设置函数来单独检查它。

有很多方法可以实现这一点,但夹具可能是最简单的

import os
import pytest

DB_URL = "foo"

@pytest.fixture(autouse=True, scope="session")
def verify_db_url():
    expected_url = "sqlite:///:memory:"
    if os.getenv(DB_URL) != expected_url:
        pytest.exit("Exiting due to incorrect database environment variable.")