php - 查找运行测试的类时出错,即使我在 IDE 中使用了自动测试创建功能
问题描述
我正在使用 PHPUnit,PHPStorm。
现在,我正在测试的实际文件位于root->foo->config
接下来,如果我选择我要测试的文件,然后右键单击 new phptest,我会看到以下屏幕:
所以到目前为止一切看起来都很好。一切都是自动预先输入的。
所以我的 ip_require.php 进入root->tests->foo
我的测试文件包含以下内容:
<?php
namespace config;
use foo\ip_request;
use PHPUnit\Framework\TestCase;
class ip_requestTest extends TestCase
{
public function testGetRealIpAddr()
{
$local = new ip_request();
$this->assertEquals('127.0.0.1', $local->getRealIpAddr());
}
}
在我的 phpunit.xml 中,我有:
<?xml version="1.0" encoding="UTF-8"?>
<target name="test">
<phpunit
bootstrap="tests/bootstrap.php"
colors="true"
> <!-- changed from vendor/autoload.php-->
<testsuites>
<testsuite name = "Website">
<directory>./tests/</directory>
</testsuite>
</testsuites>
<php>
<ini name="error_reporting" value="-1" />
<env name="KERNEL_CLASS" value="App\Kernel" />
<env name="APP_ENV" value="test" />
<env name="APP_DEBUG" value="1" />
<env name="SHELL_VERBOSITY" value="-1" />
</php>
</phpunit>
</target>
我的 bootstrap.php 里面只有
ini_set('display_errors', true);
error_reporting(E_ALL);
include $_SERVER['DOCUMENT_ROOT'].'\foo\ip_requestTest.php';
我在 bootstrap.php 预览中得到错误:
我悬停在上面的所有东西看起来都指向了课堂上的正确方向。
如果我单击并关注测试文件中的课程,它会将我带到正确的位置
我的 PHPUnit 安装到最新版本,在命令行中验证,在 composer.json 中
"require": {
"phpunit/phpunit": "9.3",
"ext-mysqli": "*"
},
有任何想法吗?我已经用完了链接来尝试...
解决方案
我找到了一个修复程序,至少可以通过 bootstrap.php 页面。
include __DIR__ . '/../foo/config/ip_request.php';
然后我的终端中仍然有类似的错误消息,但最终让我的测试工作的是我确保 composer.json 具有相同版本的 PHPUnit。
一旦他们在相同的地方工作!
推荐阅读
- r - 如何强制多个列类?
- visual-studio-code - 如何在 VSCode 任务中使用 MSTest --filter 参数
- javascript - 对测试非继承但继承的 CSS 显示属性感到震惊
- sql - 阻止较新版本的 SQL 构建或执行
- python - 如何从 Python 中的 Double For 循环中的值创建字典?
- amazon-web-services - 如何将参数发送到 EC2 实例 aws
- python - 如何从基于列表的较大矩阵中提取非连续矩阵
- python - 基于 uint32 id 以 x 长度的块解析流
- github-actions - 上一个作业的参考输出 GH Actions
- c# - C# 类属性集未被调用或设置