小编Jul*_*anC的帖子

pytest 根据环境跳过测试条件

在使用 pytest 框架的脚本和 conftest.py 中,我有一个解析器从命令行获取环境值,以便测试知道它需要在哪个环境中运行。

def pytest_addoption(parser): # obtiene el valor de CLI    
parser.addoption("--env")
Run Code Online (Sandbox Code Playgroud)

--

@pytest.fixture()
def environment(env):
if env == 'DEV':
    entorno = 'DEV'
elif env == 'TE':
    entorno = 'TE'
elif env == 'PROD':
    entorno = 'PROD'
else:
    entorno = 'UAT'
return entorno
Run Code Online (Sandbox Code Playgroud)

我有一些永远不应该在 PROD 中运行的测试,有没有办法使用 pytest 进行标记或跳过条件来检查 env 变量是否为“PROD”不应运行?我想知道是否可以在测试开始运行之前获取环境值,以便我可以在测试顶部添加 @pytest.mark.skipif(env=="PROD") 。我发现的唯一方法是在测试中添加 if 条件,如下所示,但我不认为这是最好的方法:

@pytest.mark.parametrize('policy_number', policy_list)
def test_fnol_vida_fast(self, setUp, environment, request, policy_number):
    try:
        if self.entorno != 'PROD':
            ###################
            Script Script Script
            ###################
        else:
            pytest.skip('Scripts FNOL don't run in …
Run Code Online (Sandbox Code Playgroud)

python selenium pytest

7
推荐指数
1
解决办法
4565
查看次数

标签 统计

pytest ×1

python ×1

selenium ×1