是否可以检测商标是否被排除?
我使用 pytest 对嵌入式目标运行一些测试。对于某些测试设置,我可以通过 epdu 控制电源。
对于带有epdu的设置,我想在测试完成后关闭测试设备的电源。
对于没有 epdu 的设置,测试是用-m "not power"
调用的,但在这里,power_on
夹具不会尝试与 epdu 通信也很重要。
@pytest.fixture(scope='session', autouse=True)
def power_on():
# TODO: just return it called with `-m "not power"`
power_on_test_equipment()
yield
power_off_test_equipment()
@pytest.mark.power_control
def test_something():
power_something_off()
我发现request.keywords['power']
如果我使用 pytest 运行 pytest,-m power
将是真的,但如果我在没有标记或-m "not power"
的情况下运行,这将不存在,这对我的场景没有真正的帮助。
我可以使用两个标记来解决问题,例如'-m"no_power而不是电源",但它看起来不是很优雅。
一种可能性是检查命令行参数。如果你知道你总是把它作为-m "not power"
传递,你可以做这样的事情:
@pytest.fixture(scope='session', autouse=True)
def power_on(request):
power = 'not power' not in request.config.getoption('-m')
if power:
power_on_test_equipment()
yield
if power:
power_off_test_equipment()