相关疑难解决方法(0)

如何使用外部夹具跳过pytest?

背景

我运行py.test夹具conftest文件.你可以看到下面的代码(一切正常):

example_test.py

import pytest

@pytest.fixture
def platform():
    return "ios"

@pytest.mark.skipif("platform == 'ios'")
def test_ios(platform):
    if platform != 'ios':
        raise Exception('not ios')

def test_android_external(platform_external):
    if platform_external != 'android':
        raise Exception('not android')
Run Code Online (Sandbox Code Playgroud)

conftest.py

import pytest

@pytest.fixture
def platform_external():
    return "android"
Run Code Online (Sandbox Code Playgroud)

问题

现在我希望能够跳过一些不适用于我当前测试运行的测试.在我的例子中,我正在为iOSAndroid运行测试(这仅用于演示目的,可以是任何其他表达式).

不幸的是,我无法在声明中得到(我的外部定义夹具).当我运行下面的代码时,我收到以下异常:.我不知道这是否是py.test错误,因为本地定义的灯具正在工作.platform_externalskipifNameError: name 'platform_external' is not defined

example_test.py的附加组件

@pytest.mark.skipif("platform_external == 'android'")
def test_android(platform_external):
    """This test will fail as …
Run Code Online (Sandbox Code Playgroud)

python decorator pytest python-decorators

18
推荐指数
3
解决办法
8067
查看次数

标签 统计

decorator ×1

pytest ×1

python ×1

python-decorators ×1