我在使用phpunit.xml
文件运行PHPUnit测试时遇到问题。我配置了这样的远程PHP解释器:
这个配置允许我调试PHP Web应用程序。我有尝试调试PHPUnit脚本的问题。我这样配置:
通过这样的配置,我可以调试PHPUnit测试:
问题是我的PHPUnit文件没有被读取而且我的环境变量没有被使用。结果我在测试中遇到了一些错误,比如CSRF令牌验证异常。
如何使用我的phpunit.xml
文件?我可以看到我可以在PHPUnit配置中添加默认配置文件。我需要在那里指定我的项目目录,而不是phpunit.xml itself
。
我可以在PHPUnit' Command->handleArguments()
函数中看到,只有两种方法可以加载这个文件。我可以指定phpunit.xml
所在的目录,也可以不使用--no-configuration
选项。
不幸的是,当我将项目所在的目录指定为phpunit.xml
的位置时,我失去了调试测试的能力。有趣的是,我仍然可以调试PHPUnit脚本(例如Command.php文件)。
我不想在IntelliJ(PhpStorm)中添加--no-configuration
选项,但是当字段"默认配置文件"没有被选中。
如何在不失去调试测试能力的情况下加载phpunit.xml
文件?
答案 0 :(得分:1)
问题是测试是孤立运行的。当我们在PHPUnit配置中指定phpunit.xml
文件或项目目录时,会考虑该文件。导致“分离”调试器的原因是孤立地运行测试。要解决问题,我们必须将属性processIsolation
设置为false
:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
...
</phpunit>