Класс PHPUnit TestCase не найден
Я работаю над созданием библиотеки PHP и хочу начать писать тесты. Я получаю сообщение об ошибке Fatal error: Class 'PHPUnit\Framework\TestCase' not found
.
Моя структура проекта: в моей основной директории у меня есть composer.json, каталог src/со всеми моими классами, каталог tests/с подкаталогами unit/и accept/. Те тесты, которые я пытаюсь запустить, находятся в каталоге unit/. Я использую интерфейс командной строки для запуска теста, поэтому ошибка возникает при запуске phpunit tests/unit/testMyClass.php
testMyClass.php выглядит так:
<?php
require 'vendor/autoload.php';
use PHPUnit\Framework\TestCase;
class MyClassTest extends TestCase {
public function testCreateMyClass() {
// Tests are written here
}
}
?>
Мой композитор .json:
{
"require-dev": {
"phpunit/phpunit": "4.8.*"
}
"autoload": {
"classmap": [
"src/"
}
}
}
Ответы
Ответ 1
У меня была такая же проблема, и я решил ее, расширив свой тестовый класс из класса PHPUnit_Framework_Testcase вместо использования пространства имен PHPUnit\Framework\TestCase. После перестройки вашей проектной структуры она отлично работала для меня.
Тесты/блок/testMyClass.php
<?php
require './vendor/autoload.php';
class MyClassTest extends PHPUnit_Framework_TestCase {
public function testCreateMyClass() {
// Tests are written here
}
}
?>
composer.json
{
"name": "root/project",
"authors": [
{
"name": "watzerm",
"email": "[email protected]"
}
],
"require": {
"phpunit/phpunit": "5.4.*"
},
"autoload": {
"classmap": [
"src/"
]
}
}
Результат
$./vendor/bin/phpunit tests/unit/testMyClass.php
PHPUnit 4.8.27 by Sebastian Bergmann and contributors.
.
Time: 252 ms, Memory: 2.25MB
OK (1 test, 0 assertions)
Пожалуйста, дайте мне знать, если это сработает для вас тоже!
Ответ 2
Я решил проблему с более новой версией PHPUnit:
wget https://phar.phpunit.de/phpunit-6.0.phar
php phpunit-6.0.phar -c app/
Вывод:
PHPUnit 6.0.10 by Sebastian Bergmann and contributors.
.. 2 / 2 (100%)
Time: 486 ms, Memory: 14.00MB
OK (2 tests, 3 assertions)
Это работает над Symfony 2.8 LTS и PHPunit 6.0 github repo - https://github.com/nikola-bodrozic/PHPUnit-Symfony28