2

我的conftest.py文件中有一个具有三个参数的夹具:

@pytest.fixture(scope="session",
        params=[(33, 303), (303, 3003), (3003, 300003)],
        ids=["small", "medium", "large"])
def complete(request):
    np.random.seed(1234567890)
    return np.random.rand(*request.param)

现在在一个特定的长时间运行的测试功能上,我想跳过“大”的情况。

@pytest.mark.skipif(...)
def test_snafu(complete):
    assert ...

这有可能吗?

4

2 回答 2

5

不清楚你在找什么

截至目前,跳过标记评估无法访问您可能希望pytest.skip在测试函数中调用的测试元数据

于 2016-05-02T18:57:17.103 回答
1

当然有可能。就像下面显示的那样skipif,我在参数化我的夹具的 4 个参数中跳过了某个参数(使用 )。

在测试执行中,跳过确实发生了,调用测试类中的所有测试将只针对夹具的前三个参数执行,夹具执行或处理将被我们标记为跳过的参数跳过基于 a必须满足的一定条件。

@pytest.fixture(
    scope='class',
    params=[
        conf.ACCOUNT_OWNER_ROLE,
        conf.ACCOUNT_READ_ONLY_ROLE,
        conf.ACCOUNT_ADMIN_ROLE,
        pytest.param(conf.PROJECT_USER_ROLE, marks=pytest.mark.skipif(
                environ.get('ENV_FOR_DYNACONF') == 'production',
                reason="This feature isn't yet released to production")
                         ),
    ],
    ids=[
        'Invitee has Account-owner role',
        'Invitee has Account-read-only role',
        'Invitee has Account-Admin role',
        'Invitee has Project-user role',
    ],
)
def my_rbac_root_fixture(
    request,
    spark_client_project_fix,
    spark_client_account_fix,
    spark_client_account_fix_invitee,
):

如果您需要有关此@Midnighter 的更多详细信息,请告诉我

于 2020-04-07T12:33:04.627 回答