Python 求助:pytest 的 skipif 怎么与 fixture 联合起来?

trimQiu · December 04, 2019 · Last by trimQiu replied at December 06, 2019 · 301 hits

各位:
目前我正准备使用pytest框架进行测试,但是需要增加自定义命令行参数。因此,用了一个fixture mySta来获取命令行输入的参数,该参数有两个状态,sta1和sta2。然后,在测试用例中,我想根据mySta的值对某些测试用例进行skip。
预想的是用mySta==“sta1”来作为skipif的条件,但是好像这样用是错误的。我该怎么写skipif的条件呢?

共收到 4 条回复 时间 点赞

我就是这么用的。
关键看你参数传递对不对,格式是否匹配,多调试一下就好

我用的是@pytest.mark.skipif(mySta=="sta1"),提示错误:E NameError: name 'mySta' is not defined。我应该怎么在mark中使用fixture的名称呢?

trimQiu 回复

你要把完整代码贴出来才知道哪里的问题啊
看报错是没定义这个变量,看下是不是没import

mySta是个fixture函数的名字,直接写在conftest.py中,应该不需要import。另外,在调用该fixture的testcase内部也使用正常,只不过在@pytest.mark.skipif语句中无法直接使用。我想问的也是,怎么在这种语句中直接检查fixture函数返回的值。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up