擅长:python、mysql、java
<p>如果需要在参数化上执行其他逻辑,可以通过metafunc参数化测试。例如:</p>
<pre><code>import os
import pytest
production_private_ids = [...]
nonproduction_private_ids = [...]
def pytest_generate_tests(metafunc):
# if the test has `subnet` in args, parametrize it now
if 'subnet' in metafunc.fixturenames:
# replace with your environment check
if os.environ.get('NAME', None) == 'production':
ids = production_private_ids
else:
ids = nonproduction_private_ids
metafunc.parametrize('subnet', ids)
def test_sharing_subnets_exist(subnet, accountid):
team_subnet = get_team_subnets(accountid)
assert subnet in team_subnet
</code></pre>
<p>现在运行<code>pytest ...</code>将只检查非生产ID,而<code>NAME="production" pytest ...</code>将只检查生产ID</p>