我刚将一个pytest测试套件从quickcheck
迁移到hypothesis
。这工作得很好(并立即发现了一些隐藏的边缘案例错误),但我看到的一个主要区别与两个物业经理之间的测试隔离有关。pytest-假设运行之间的测试隔离
quickcheck
似乎只是用不同的参数值多次运行测试函数,每次运行我的函数范围的灯具。这也导致pytest的输出中有更多的点。
hypothesis
然而,似乎多次运行测试函数的主体,这意味着例如单个运行之间没有事务回滚。这意味着当我的测试向DB中插入某些内容时,我无法可靠地断言多个数据库条目,因为上一次运行的所有条目都仍然存在。
我在这里错过了一些明显的东西,或者是这种预期的行为?如果是这样,是否有一种方法可以获得运行假设的数量作为变量在测试中使用?
我明白了。感谢您花时间回答。我正在努力解决这个问题,在我的断言中考虑到了这一点。事实上,它也有一些优点。 :-) 顺便说一句,有没有办法让测试中使用的运行次数假设已经完成了? 再次感谢! –