Я написал тест phpunit. Я запустил его, используя следующие команды:Класс не найден phpunit
C:\Program Files (x86)\Ampps\www\phpunit.dev\vendor\bin>phpunit -c ../../phpunit.xml
Но в конечном итоге, эту ошибку:
PHP Fatal error: Class 'Acme\SumFinder' not found in C:\Program Files (x86)\Ampps\www\phpunit.dev\tests\AcmeTests\SumFinderTest.php on line 15
Я пытался несколько решений из этих вопросов:
- Class 'sample\question2\Hello' not found with composer and phpunit
- Autoloading classes in PHPUnit using Composer and autoload.php
но ничего не работает. Что может быть проблемой и как я ее разрешу? Благодаря!
Мои структуры каталогов:
- phpunit.dev/src/Acme/SumFinder.php
- phpunit.dev/tests/AcmeTests/SumFinderTest.php
- phpunit.dev/composer.json
- phpunit.dev/phpunit.xml
Мой composer.json написано так:
{
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
"autoload": {
"psr-4": {
"Acme\\": "./src/"
}
},
"autoload-dev": {
"psr-4": {
"AcmeTests\\": "./tests/"
}
}
}
Мой Acme \ SumFinder.php написано так:
<?php
namespace Acme;
class SumFinder {
private $inputArray;
function __construct($inputArray = null) { ... }
function findSum() { ... }
function compareArrays() { ... }
}
?>
Мои AcmeTests \ SumFinderTest.php:
<?php
namespace AcmeTests;
use Acme\SumFinder;
class SumFinderTest extends \PHPUnit_Framework_TestCase
function testFindSum() { ... }
function testCompareArrays() { ... }
?>
Мой phpunit.xml конфигурационный файл:
<?xml version="1.0" encoding="utf-8" ?>
<phpunit colors="true" bootstrap="./vendor/autoload.php">
<testsuites>
<testsuite name="First Test">
<directory>./tests</directory>
</testsuite>
</testsuites>
Я использую стек Windows 10 и AMPPS, если это может помочь решить мою проблему.
Попробуйте эту команду в cmd или powershell 'composer -o dump-autoload' – McStuffins
Это работает! Благодаря! Но мне интересно, почему это работает, а 'comper dump-autoload' не работает? @mcstuffins –
он должен был сработать. Вы делали «-o». Все, что он делает, это оптимизация вашего файла композитора. Я рад, что он работает. В большинстве случаев, когда возникает эта проблема, это происходит из-за композитора и способа загрузки. – McStuffins