PHPUnit:错误:即使导入类也找不到类

时间:2020-04-12 11:16:36

标签: php testing phpunit

我从Jeffrey Way:https://github.com/laracasts/Code-Katas-in-PHP/tree/master/prime-factors

的一段Laracasts视频中复制并粘贴了相关文件中的代码。
<?php

use App\PrimeFactors;

class PrimeFactorsTest extends \PHPUnit\Framework\TestCase
{
    /**
     * @test
     * @dataProvider factors
     */
    function it_generates_prime_factors($number, $expected)
    {
        $factors = new PrimeFactors();

        $this->assertEquals($expected, $factors->generate($number));
    }

    public function factors()
    {
        return [
            [1, []],
            [2, [2]],
            [3, [3]],
            [4, [2, 2]],
            [5, [5]],
            [6, [2, 3]],
            [7, [7]],
            [8, [2, 2, 2]],
            [9, [3, 3]],
            [11, [11]],
            [12, [2, 2, 3]],
            [17, [17]],
            [100, [2, 2, 5, 5]]
        ];
    }

}

但是,每当我运行以下命令:phpunit filename时,都会出现错误告诉我:Class 'App\PrimeFactors' not found

即使在第3行中,我仍在使用类use App\PrimeFactors;

导入名称空间。

那么,在composer.json中自动加载是否存在问题?

{
    "name": "",
    "description": "",
    "require": {
        "phpunit/phpunit": "^9.0"
    },

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

我看过其他有相同问题的帖子,但是这些帖子的解决方案对我没有帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

问题可能是类“ PrimeFactors”没有命名空间。尝试添加以下行:“ PrimeFactors”类中的namespace App;