gpt4 book ai didi

phpunit 在测试之间重置环境

转载 作者:可可西里 更新时间:2023-11-01 13:11:32 30 4
gpt4 key购买 nike

我有一个 symfony2 应用程序,我正在使用 phpunit。

我有一些单元测试,其中我使用模拟来模拟 AppKernel 和向应用程序发出“真实”请求的功能测试。单独运行单元测试或功能测试时,一切正常。

当我想一次运行所有测试时,它变得很讨厌。一旦单元测试完成,phpunit 就会停止,并告诉我:


fatal error :无法在第 35 行的 C:\Users\sebastian\workspace\ppInterface\app\AppKernel.php 中重新声明类 AppKernel

我不明白这一点,因为我认为 phpunit 会在它自己的环境中运行每个测试。这似乎并非如此。我该怎么做才能把事情做好并“重置”测试运行的环境?

最佳答案

默认情况下,PHPUnit 不会重置所有内容,尽管这是可能的。

包括 - 你的问题 - 没有被重置(并且不能在一个单一的过程中)。一种解决方案是使用 require_once 而不是 require,或者在 phpunit.xml 文件或测试用例中使用进程隔离( @runTestsInSeparateProcesses) 或测试方法 (@runInSeparateProcess)。

您还可以影响在测试之间重置的内容:

  • @backupGlobals
  • @backupStaticAttributes

关于phpunit 在测试之间重置环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268823/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com