pytest问题持续更新
1. 在python中如果在子类中重写了父类的方法,而又需要执行父类的该方法,可以用Super(子类名, self).方法名 来在子类中重新执行该方法
2. MySqlDB问题:在查询时不能拿到当前数据的状态,记录的status已经更改,但没有查到
解决:python引用的MySQLDB需要在每次执行操作后进行commit, 即使是select语句,不然会有缓存。此问题就是前次查询后没有commit, 导致第二次查询仍然显示第一次的查询结果。
3. 用例出现random failure时使用重试机制:
解决:
方法1:使用pytest的插件,pip install pytest-rerunfailures
pytest --reruns 5 --reruns-delay 1 (出现错误时最多重试5次,重试的等待时间是1秒)
方法2: 使用pytest自带装饰器
@pytest.mark.flaky(retuns=5, reruns_delay=1)
def test_example():
pass
方法3:自己写装饰器实现重试