Python 如何在pytest中使用测试套件替换一个测试?

Python 如何在pytest中使用测试套件替换一个测试?,python,unit-testing,testing,pytest,Python,Unit Testing,Testing,Pytest,我与正在运行稳定增长的测试套件的研究人员一起工作,有时他们会破坏测试,因为他们使用的代码会破坏环境,修改的方式在运行单个测试时有效,但在整个测试套件中失败 我以前(在Java中)构建的是一个测试运行程序,它在测试运行中交替执行给定的测试和每个测试。在pytest中,这似乎应该相对容易,但到目前为止,我还没有弄清楚细节。有什么明显的遗漏吗?你说的交替测试到底是什么意思?另一方面,如果您的测试在与其他测试一起运行时失败,但在单独运行时通过,那么您的测试之间似乎存在依赖性问题。我宁愿通过实现fixtu

我与正在运行稳定增长的测试套件的研究人员一起工作,有时他们会破坏测试,因为他们使用的代码会破坏环境,修改的方式在运行单个测试时有效,但在整个测试套件中失败


我以前(在Java中)构建的是一个测试运行程序,它在测试运行中交替执行给定的测试和每个测试。在pytest中,这似乎应该相对容易,但到目前为止,我还没有弄清楚细节。有什么明显的遗漏吗?

你说的交替测试到底是什么意思?另一方面,如果您的测试在与其他测试一起运行时失败,但在单独运行时通过,那么您的测试之间似乎存在依赖性问题。我宁愿通过实现fixture来解决这个问题,因为单个测试会干扰其他测试;这个问题需要找到并解决。找到问题就是问题所在——在本例中,这是一个写入@lru_cache生成的值的测试。还有其他的。听起来你想要一个设置,一些在每次测试之前运行的东西?如果一个测试开始使测试套件失败,并且你需要找到它,它就像跟踪代码中的任何其他回归一样得到解决:通过在VCS中进行二进制搜索(例如,使用
git bisect
),找到引入回归的代码块并对其进行分析。定期运行测试的CI服务器有助于在出现新的回归时提前发出警报。但是,可能我仍然没有注意到一点-您能否给出一个测试运行器的示例,该测试运行器在测试运行中交替执行给定的测试?