PhpUnit 在 Symfony 2 项目中的 PhpStorm 中失败,退出代码为 255

2022-01-25 00:00:00 php symfony phpunit phpstorm

我无法让 phpunit 在 PhpStorm 的 Symfony 项目中工作 - phpunit -c app 在 OSX 终端中工作正常.

I'm having trouble getting phpunit working inside of a Symfony project in PhpStorm - phpunit -c app works fine in the OSX terminal.

这是错误:

Unable to attach test reporter to test framework of test framework quit unexpectedly
/Applications/MAMP/bin/php/php5.4.4/bin/php/private/var/folders/4l/hw8g4qlj6nnc37lfkc6hcj7w0000gn/T/ide-phpunit.php --bootstrap
/Users/greg/Repos/MyApp/app/bootstrap.php.cache --configuration    
/Users/greg/Repos/MyApp/app/phpunit.xml.dist
MyAppMyBundleTestsControllerMyControllerTest 
/Users/greg/Repos/MyApp/src/HvH/MyBundle/Tests/Controller/MyControllerTest.php

Testing started at 11:45 AM ...

Process finished with exit code 255

这是来自 PHP 日志的错误:

Here is the error from the PHP log:

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The "app/" directory does not exist.' in /Users/greg/Repos/MyApp/vendor/symfony/symfony/src/Symfony/Component/Finder/Finder.php:650

推荐答案

我遇到了同样的问题,在文档中找到了以下解决方案:http://symfony.com/doc/current/book/testing.html#你的第一个功能测试

I ran into the same issue and found the following solution in the documentation: http://symfony.com/doc/current/book/testing.html#your-first-functional-test

为了运行您的功能测试,WebTestCase 类引导您的应用程序的内核.在大多数情况下,这会自动发生.但是,如果您的内核位于非标准目录中,则需要修改 phpunit.xml.dist 文件以设置 KERNEL_DIR 环境变量到你的内核目录:

To run your functional tests, the WebTestCase class bootstraps the kernel of your application. In most cases, this happens automatically. However, if your kernel is in a non-standard directory, you'll need to modify your phpunit.xml.dist file to set the KERNEL_DIR environment variable to the directory of your kernel:

<phpunit>
    <!-- ... -->
    <php>
        <server name="KERNEL_DIR" value="/path/to/your/app/" />
    </php>
    <!-- ... -->
</phpunit>

所以检查您的 phpunit.xml.dist 配置文件并尝试将绝对路径添加到您的应用程序目录.

So check your phpunit.xml.dist configuration file and try to add the absolute path to your app-directory.

希望对你有帮助.

相关文章