Я пытаюсь настроить 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()
{
}
Когда я пытаюсь запустить 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
Строка 3 — это объявление класса в myClass.php, поэтому я не могу понять, почему появляется это сообщение.
В некоторых других сообщениях упоминается проблема с автозагрузчиком, однако я не знаю, что искать. вот мой файл autoloader.php:
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit5d05186b2ab974ea0fca942edb705943::getLoader();
Если я удалю тестовую функцию, то сообщение исчезнет, я полагаю, потому что тогда в классе нет тестов.
У меня вопрос такой:
Пожалуйста, сообщите на основании предоставленного кода, почему появляется это фатальное сообщение об ошибке. Кроме того, как я могу удалить эту ошибку, т.е. что я должен искать в своем коде?
Задача ещё не решена.
Других решений пока нет …