Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 测试假设运行之间的测试隔离_Python_Pytest_Quickcheck_Python Hypothesis - Fatal编程技术网

Python 测试假设运行之间的测试隔离

Python 测试假设运行之间的测试隔离,python,pytest,quickcheck,python-hypothesis,Python,Pytest,Quickcheck,Python Hypothesis,我刚刚将pytest测试套件从quickcheck迁移到hyporation。这非常有效(并立即发现了一些隐藏的边缘案例bug),但我看到的一个主要区别与两个属性管理器之间的测试隔离有关 quickcheck似乎只是使用不同的参数值多次运行测试函数,每次运行我的函数范围的装置。这也会在pytest的输出中产生更多的点 假设但是似乎只多次运行测试函数的主体,这意味着在单独运行之间没有事务回滚。这就意味着,当我的测试向数据库中插入一些东西时,我无法可靠地断言大量的数据库条目,例如,因为上一次运行中的

我刚刚将pytest测试套件从
quickcheck
迁移到
hyporation
。这非常有效(并立即发现了一些隐藏的边缘案例bug),但我看到的一个主要区别与两个属性管理器之间的测试隔离有关

quickcheck
似乎只是使用不同的参数值多次运行测试函数,每次运行我的函数范围的装置。这也会在pytest的输出中产生更多的点

假设
但是似乎只多次运行测试函数的主体,这意味着在单独运行之间没有事务回滚。这就意味着,当我的测试向数据库中插入一些东西时,我无法可靠地断言大量的数据库条目,例如,因为上一次运行中的所有条目仍然会挂起


我是否遗漏了一些明显的东西,或者这是预期的行为?如果是这样的话,有没有一种方法可以得到假设已经完成的运行次数,作为测试中使用的变量?

恐怕您有点卡住了,目前没有任何好的解决方案


假设需要工作的方式(这是它比pytest quickcheck有很多改进的来源)不符合pytest关于测试执行的假设。问题是-当前的pytest fixture系统对如何运行测试有一些非常成熟的假设,这些假设在控制测试执行方面不起作用,上一次我尝试解决这个问题时,我在放弃之前花了大约一周的时间,然后基本上说要么最糟糕的方面需要改变,要么会变得更好。

我明白了。感谢您抽出时间回答。我目前正设法解决这个问题,在我的资产中考虑到这一点。事实上,它也有一些优势。:-)顺便问一下,是否有一种方法可以获得假设作为变量在测试中使用的运行次数?再次感谢!