PHPUnit 找不到路径,PhpStorm 添加了额外的文件夹



我正在运行phpunit,它给了我一个错误

PHP Fatal error:  Class 'MyAppMyBundleTestsUnitsClassesActionActionTestCase' not found in /var/www/src/tests/src/MyApp/MyBundle/Classes/Action/KeywordTest.php on line 7

在该类中是

5 use MyAppMyBundleTestsUnitsClassesActionActionTestCase as TestCase;
6
7 class KeywordTest extends TestCase {

我无法理解的是,ActionTestCase存在,但MyAppMyBundleClassesActionActionTestCase

当我使用 PhpStorm 的自动完成功能时,它使用带有TestsUnits部分的路径。这是它找到的唯一路径,如果我双击那里,它会定向到正确的类。然而PHPUnit没有找到它。

这个额外的路径被添加到哪里?在PhpStorm或Composer或其他地方?

作曲家.json 文件包含此

"autoload": {
"psr-0": {
"": "src/"
}
}
,
"autoload-dev": {
"psr-4": {
"": "src/tests"
}
},

phpunit.xml 文件包括这个

<phpunit bootstrap="app/autoload.php"> 

将测试移出 src 听起来是一个很好的建议(关于Jakub Zalas评论),您可以更好地说这是否适合您。

无论如何,开发自动加载器都没有为该路径正确配置:

"autoload-dev": {
"psr-4": {
"": "src/tests"
}
},

会查找文件

srctestsMyAppMyBundleClassesActionActionTestCase.php

但你有文件在

srctestssrcMyAppMyBundleClassesActionActionTestCase.php
^^^

添加缺少的src/部分应该使其正常工作:

"autoload-dev": {
"psr-4": {
"": "src/tests/src/"
}
},

不要忘记再次转储自动加载:

composer dump-autoload

更改composer.json后。

相关内容

  • 没有找到相关文章

最新更新