我正在conftest.py中设置一些配置,以在特定情况下重新运行失败的pytest测试。
此功能已添加到conftest.py。这个想法是可以通过使用请求夹具将request.node.retry设置为True来将测试设置为重试。
child: Container(
child: Stack(
children: <Widget>[
BackdropFilter(
filter: ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0),
child: Container(
decoration: BoxDecoration(
shape: BoxShape.circle,
color: color
),
height: 60,
width: 60,
),
),
Positioned(
left: 15,
top: 15,
child: Container(
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.lightBlue
),
height: 30,
width: 30,
),
),
]
),
)
这在运行多个测试时有效,但是如果仅运行一个测试,或者该测试是系列中的最后一个,则测试的第一个失败会导致所有固定装置的拆卸。功能级别的固定装置可以重新设置(实际上,我希望它们是为了确保干净的状态),但是会话级固定装置也被拆除了,我需要它们重新启动测试。
在我准备好之前,有什么方法可以防止会话级设备崩溃吗?
答案 0 :(得分:0)
此问题的解决方案有点破解-它添加了一个未记录的虚拟测试。
安装pytest-ordering。添加一个新文件,该文件的虚拟测试标记为最后一个标记,例如
@pytest.mark.last
def test_dummy():
assert True
然后在pytest_runtest_protocol函数中,一开始就跳过虚拟测试:
def pytest_runtest_protocol(item, nextitem):
if item.name == 'test_dummy':
return False
# Rest of function
由于最后一个功能将始终是无法重试的虚拟功能,因此会话固定装置在测试中将是有效的,并且随后将被拆除。