laravel - 如何正确设置 PhpStorm?Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term()
问题描述
我已经全局安装了 PHPUnit 并设置了一个环境变量“path”,所以它通过命令运行phpunit.phar
我在“app”文件夹中创建了一个带有自定义函数的文件:
function is_id_term(string $q, &$id = null, string $name = 'id'): bool {
...
...
...
...
...
}
之后,我在 composer.json 文件的 autoload 部分添加了以下行:
"files": [
"./app/functions.php"
]
然后我运行命令:
composer dump-autoload
tests/unit/
然后在文件夹中创建单元测试:
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
class IsIdTermTest extends TestCase
{
public function testOne()
{
$res = is_id_term('id: 1');
$this->assertTrue($res);
}
public function testString()
{
$res = is_id_term('id:lucas');
$this->assertFalse($res);
}
}
如果我使用 PhpStorm 右上角的绿色按钮运行这些测试,我会收到以下错误:
C:\localserver\php8.0.2\php.exe C:\Users\webgr\AppData\Roaming\Composer\vendor\laravel\installer\bin\phpunit.phar --no-configuration C:\Users\webgr\projects\my-blog\tests --teamcity --cache-result-file=C:\Users\webgr\projects\my-blog\.phpunit.result.cache
Testing started at 19:00 ...
PHPUnit 9.5.4 by Sebastian Bergmann and contributors.
Error : Call to undefined function Tests\Unit\is_id_term()
C:\Users\webgr\projects\my-blog\tests\Unit\IsIdTermTest.php:11
使用绿色按钮开始测试后,文件将出现在项目的根文件夹中 .phpunit.result.cache 包含此内容
C:37:"PHPUnit\Runner\DefaultTestResultCache":230:{a:2:{s:7:"defects";a:2:{s:32:"Tests\Unit\IsIdTermTest::testOne";i:4;s:35:"Tests\Unit\IsIdTermTest::testString";i:4;}s:5:"times";a:2:{s:32:"Tests\Unit\IsIdTermTest::testOne";d:0.004;s:35:"Tests\Unit\IsIdTermTest::testString";d:0;}}}
但是,如果我在终端中执行命令:
phpunit.phar
然后所有测试都通过而没有错误。
同样,如果我在其他文件中单击它的名称,PhpStorm 可以毫无问题地找到这个函数。
你能告诉我如何设置 PhpStorm 吗?我的错误是什么?
解决方案
重新安装项目后,一切正常,但我仍然不知道错误的原因是什么。我相信原因是我在全局安装 PHPUnit 并配置 XDebug 之前创建了项目。虽然我当然可能是错的。
推荐阅读
- css - 在 CSS 中,如果项目在同一行,如何在项目之间放置分隔符?
- wpf - WPF DataGrid:为各个行动态生成的 ContextMenu
- java - 将 JSON 值从 null 更改为空字符串
- spring-boot - 如何向 WinSW 提供 spring.config.location 以将 SpringBoot 安装为 Windows 服务?
- python - 将光标移动到 MDTextField 中字符串的最终位置
- node.js - 将前端 React 连接到后端 Nodejs,两者都托管在不同的来源
- c# - 如何从 JsonTextReader 读取整个字符串
- python - Flask CGI htaccess 404 未找到
- git - 我可以为我网站的一个部分使用单独的分支吗?
- templates - Handlebars:使用键中的空格访问嵌套对象