如何正确设置 PhpStorm?不能在 Windows 10 上的 Laravel 8 上运行 PHPUnit调用未定义的函数 Tests\Unit\is_id_term()

问题描述

我已经全局安装了 PHPUnit 并设置了一个环境变量“path”,所以它通过命令 PHPunit.phar

我在“app”文件夹中创建了一个带有自定义函数文件

function is_id_term(string $q,&$id = null,string $name = 'id'): bool {
    ...
    ...
    ...
    ...
    ...
}

之后,我在 composer.json 文件自动加载部分添加了以下行:

"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 吗?我的错误是什么?

解决方法

尝试更换

UIImage(named: name,in: Bundle.module,compatibleWith: nil)

use PHPUnit\Framework\TestCase;

use Tests\TestCase; 命令似乎总是生成带有引用为 artisan make:test {name} --unit 的 TestCase 的模板

,

重新安装项目后,一切正常,但我仍然不知道错误的原因是什么。我相信原因是我在全局安装PHPUnit并配置XDebug之前创建了项目。虽然我当然可能是错的。