致命错误 无法声明类,因为名称已被使用

kri*_*987 5 php testing phpunit unit-testing

我正在尝试设置 phpunit 并将其用于测试。这是我第一次使用它,所以我可能会遗漏一些东西。看起来通过搜索其他人遇到了这个问题,但是答案对我不起作用。我已经尝试调整命名空间并检查我的测试正在调用的类中的需要/包含,但是这些都没有产生任何影响。

我有一个类似于下面的类:

<?php

namespace TM470_project\Test\php;

use \vendor\Autoload;

class myClassTest extends \PHPUnit\Framework\TestCase
{
     protected function setUP()
     {
         $temp = $this -> getMockBuilder('\My_project\php\myClassScript')
                       -> setConstructorArgs(
                          array(
                              "key" => "value",
                              "key" => "value",
                              "key" => "value"
                          ))
                       -> getMock();
 }

protected function tearDown()
{
    $temp = null;
}

public function removeTest()
{

}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行 phpunit 时,响应如下:

Fatal error: Cannot declare class myClass, because the name is already in use     in /Library/WebServer/Documents/mysites/My_project/php/myClass.php on line 3

Call Stack:
    0.0003     356720   1. {main}() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/phpunit:0
    0.0032     727752   2. PHPUnit\TextUI\Command::main() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/phpunit:53
    0.0032     727864   3. PHPUnit\TextUI\Command->run() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/src/TextUI/Command.php:148
    0.0171    2257584   4. PHPUnit\TextUI\TestRunner->doRun() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/src/TextUI/Command.php:195
    0.0230    2410320   5. PHPUnit\Framework\TestSuite->run() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:546
    0.0276    2417088   6. PHPUnit\Framework\TestCase->run() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/src/Framework/TestSuite.php:755
    0.0276    2417088   7. PHPUnit\Framework\TestResult->run() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/src/Framework/TestCase.php:894
    0.0281    2439208   8. PHPUnit\Framework\TestCase->runBare() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/src/Framework/TestResult.php:698
    0.0283    2455896   9. vendor\AutoLoad\mortgageTest->setUP() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit/src/Framework/TestCase.php:935
    0.0300    2633496  10. PHPUnit\Framework\MockObject\MockBuilder->getMock() /Library/WebServer/Documents/mysites/TM470_Project/Test/php/myTest.php:61
    0.0300    2633496  11. PHPUnit\Framework\MockObject\Generator->getMock() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit-mock-objects/src/MockBuilder.php:118
    0.0301    2633496  12. PHPUnit\Framework\MockObject\Generator->generate() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit-mock-objects/src/Generator.php:189
    0.0301    2633560  13. PHPUnit\Framework\MockObject\Generator->generateMock() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit-mock-objects/src/Generator.php:488
    0.0313    2780728  14. interface_exists() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit-mock-objects/src/Generator.php:657
    0.0313    2780784  15. spl_autoload_call() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit-mock-objects/src/Generator.php:657
    0.0313    2780920  16. Composer\Autoload\ClassLoader->loadClass() /Library/WebServer/Documents/mysites/vendor/phpunit/phpunit-mock-objects/src/Generator.php:657
    0.0314    2781048  17. Composer\Autoload\includeFile() /Library/WebServer/Documents/mysites/vendor/composer/ClassLoader.php:322
    0.0319    2841600  18. include('/Library/WebServer/Documents/mysites/TM470_project/php/mortgage.php') /Library/WebServer/Documents/mysites/vendor/composer/ClassLoader.php:444
Run Code Online (Sandbox Code Playgroud)

第 3 行是 myClass.php 中的类声明,所以我看不出为什么会出现此消息。

其他一些帖子提到了 Autoloader 是问题所在,但我不知道该找什么。这是我的 autoloader.php 文件:

<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit5d05186b2ab974ea0fca942edb705943::getLoader();
Run Code Online (Sandbox Code Playgroud)

如果我删除测试功能,那么我认为该消息会消失,因为类中没有测试。

我的问题是: 请根据提供的代码提供建议,为什么会出现此致命错误消息。另外,我怎样才能消除这个错误,即我应该在我的代码中寻找什么?