如何正确设置 PhpStorm? Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term()
Posted
技术标签:
【中文标题】如何正确设置 PhpStorm? Сan\'t run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\\Unit\\is_id_term()【英文标题】:How to set up PhpStorm correctly? Сan't run PHPUnit on Laravel 8 on Windows 10. Call to undefined function Tests\Unit\is_id_term()如何正确设置 PhpStorm? Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term() 【发布时间】:2021-06-24 21:07:54 【问题描述】:我已经全局安装了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 吗?我的错误是什么?
【问题讨论】:
@LazyOne 感谢指正 似乎您的自动加载不适用。你在 PhpStorm 中配置了吗?请查看设置 -> 语言和框架 -> PHP -> 测试框架。设置您的配置 (phpunit.xml) 并重试。 使用绿色按钮开始测试后,文件出现在项目的根文件夹 .phpunit.result.cache 中,内容为 C:37:"PHPUnit\Runner\DefaultTestResultCache":230: a:2:s:7:"缺陷";a:2:s:32:"Tests\Unit\IsIdTermTest::testOne";i:4;s:35:"Tests\Unit\IsIdTermTest::testString ";i:4;s:5:"次";a:2:s:32:"Tests\Unit\IsIdTermTest::testOne";d:0.004;s:35:"Tests\Unit\IsIdTermTest: :testString";d:0; 【参考方案1】:尝试替换
use PHPUnit\Framework\TestCase;
与
use Tests\TestCase;
artisan make:test name --unit
命令似乎总是使用引用为 PHPUnit\Framework\TestCase
的 TestCase 生成模板
【讨论】:
在这种情况下,我收到以下错误:致命错误:未捕获的错误:找不到类“PHPUnit\TestCase” 使用use PHPUnit\Framework\TestCase;
会引发错误。你试过use Tests\TestCase;
吗?【参考方案2】:
重新安装项目后,一切正常,但我仍然不知道错误的原因是什么。我相信原因是我在全局安装 PHPUnit 并配置 XDebug 之前创建了项目。虽然我当然可能是错的。
【讨论】:
我很确定问题与 Composer 有关,它没有更新新文件。以上是关于如何正确设置 PhpStorm? Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term()的主要内容,如果未能解决你的问题,请参考以下文章
text PhpStorm的Клаиватурныесокращения
ruby ПроверкавалидностиИННюрлицанаRuby(согласноhttp://www.egrul.ru/test_inn.html)
使用 HTML 表单,如何使用正确的 GET/POST 数据开始调试操作 PHP 脚本? (使用 PhpStorm 和 XAMPP)