我的项目根目录中有一个 phpunit.xml 文件。当我运行
vendor/bin/phpunit web/core/tests/Drupal/KernelTests/Core/DependencyInjection/AutowireTest.php
时,该文件将被拾取并且测试可以正确运行。我可以确认这种情况发生,因为测试正在运行,而且如果我删除该文件,phpunit 就会崩溃。
我已经制作了该文件的精确副本并将其命名为
phpunit-host.xml
。
如果我这样做
vendor/bin/phpunit -c phpunit-host.xml web/core/tests/Drupal/KernelTests/Core/DependencyInjection/AutowireTest.php
那么一切都会崩溃:
PHPUnit\Framework\Exception: PHP Fatal error: Uncaught PHPUnit\Util\Xml\Exception: Could not read "phpunit-host.xml". in /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/Util/Xml/Loader.php:49
Stack trace:
#0 /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php(71): PHPUnit\Util\Xml\Loader->loadFile('phpunit-host.xm...', false, true, true)
#1 Standard input code(101): PHPUnit\TextUI\XmlConfiguration\Loader->load('phpunit-host.xm...')
#2 {main}
Next PHPUnit\TextUI\XmlConfiguration\Exception: Could not read "phpunit-host.xml". in /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php:73
Stack trace:
#0 Standard input code(101): PHPUnit\TextUI\XmlConfiguration\Loader->load('phpunit-host.xm...')
#1 {main}
thrown in /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php on line 73
Fatal error: Uncaught PHPUnit\Util\Xml\Exception: Could not read "phpunit-host.xml". in /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/Util/Xml/Loader.php:49
Stack trace:
#0 /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php(71): PHPUnit\Util\Xml\Loader->loadFile('phpunit-host.xm...', false, true, true)
#1 Standard input code(101): PHPUnit\TextUI\XmlConfiguration\Loader->load('phpunit-host.xm...')
#2 {main}
Next PHPUnit\TextUI\XmlConfiguration\Exception: Could not read "phpunit-host.xml". in /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php:73
Stack trace:
#0 Standard input code(101): PHPUnit\TextUI\XmlConfiguration\Loader->load('phpunit-host.xm...')
#1 {main}
thrown in /Users/joachim/Sites/drupal-core-development-project/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php on line 73
出了什么问题?
我尝试在vendor/phpunit/phpunit/src/Util/Xml/Loader.php和getcwd()中查找,$filename全部匹配,$contents是文件的XML字符串。
在使用放置在根目录中的 phpunit.xml 文件并使用 -c 选项运行测试时遇到了同样的问题。使用文件的完整路径运行测试修复了此问题。我假设它正在寻找确切的字符串,但在通过测试从模块调用时找不到它。
vendor/bin/phpunit -c /var/www/html/phpunit-new.xml