使用感染时CoreClassReflection.php中的类不存在

问题描述 投票:0回答:1

我尝试使用 Infection 来使用 php 评估我的测试用例,我有 2 个文件(Displayuser.php、displayuserTest.php)

第一个文件Displayuser.php代码如下,该文件位于func文件夹下

<?php
namespace func;
include 'config.php';
class Displayuser 
{
public function add($num1, $num2) {
        return $num1 + $num2;
    }
}
?>

和第二个文件 displayuserTest.php

<?php
include 'config.php';
include 'func/Displayuser.php';
use func\Displayuser;
class DisplayuserTest extends PHPUnit\Framework\TestCase
{
public function testAdd()
   {
    $dispUser = new func\Displayuser;
    $result = $dispUser->add(1,2);
    $this->assertEquals(3,$result);
   }
}
?>

如果我使用 PHPUnit 使用此命令“./vendor/bin/phpunit --testdox”进行测试,没关系,不会出现错误,但是当我使用“infection --filter=Displayuser.php”等感染命令时,会出现错误错误信息

**处理源代码文件:0/1 在 CoreClassReflection.php 第 55 行:

“func\Displayuser”类不存在
** 为什么会这样,哪位高手可以帮帮我。谢谢

我在 Displayuser.php 中创建了 func 命名空间,实际上可以调用 $dispUser->add 但我仍然收到该错误。

phpunit testcase classnotfound infection
1个回答
0
投票

实际上,当我将文件夹从 function 更改为 func 时,就会出现这个问题,我的解决方案是

  1. 我必须确保composer.json中的自动加载配置是这样的
    {
        "autoload": {
            "psr-4": {
                "Func\\": "func"
            }
        }
    }
  1. 通过此命令清除自动加载缓存
    composer dump-autoload

错误消息消失了

© www.soinside.com 2019 - 2024. All rights reserved.