Ошибка PHPUnit - класс не найден - PullRequest
1 голос
/ 13 мая 2011

Я только что установил PHPUnit 3.5 в своей системе, обновив его с 3.4, и у меня возникли некоторые проблемы с новой версией.Когда я пытаюсь запустить тест, я всегда получаю один и тот же вывод.Вот что я получаю, когда пытаюсь запустить в командной строке пример StackTest из руководства PHPUnit, пример 4.1 :

> phpunit StackTest

X-Powered-By: PHP/5.2.17
Content-type: text/html

PHPUnit 3.5.13 by Sebastian Bergmann.

Class StackTest could not be found in StackTest.php.

Еще хуже, когда я пытаюсь запустить егоиз веб-браузера я получаю следующий вывод:

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /path/to/tests/StackTest.php on line 2 

Кто-нибудь знает, как это настроить?Благодаря.

Ответы [ 8 ]

4 голосов
/ 04 октября 2012

У меня была проблема, которую вы описали в Windows.Проблема была в файле pear \ PHPUnit \ Runner \ StandardTestSuiteLoader.php в строке 131 и была вызвана другой буквой диска в имени файла в условии

if ($class->getFileName() == realpath($suiteClassFile)) {

Мое простое решение - изменить эту строкубыть нечувствительным к регистру

if (strtolower($class->getFileName()) == strtolower(realpath($suiteClassFile))) {
1 голос
/ 13 февраля 2015
phpunit MyTestClass

В моем случае

  • MyTestClass.php должен находиться в домашнем каталоге проекта
  • он должен начинаться с длинного открытого тега php (<?php, а не * 1008)*)
  • он должен содержать class MyTestClass extends PHPUnit_Framework_TestCase {

Я знаю, что это, скорее всего, не самый лучший способ, просто начните с нуля.

1 голос
/ 23 ноября 2012

Я думаю, что ваш класс PHPUnit назван StackTest, а класс, который вы хотите проверить, также называется StackTest.Это вызовет конфликт путей в PHPUnit.

Сделайте эти два имени разными, и вы получите разрешение.

1 голос
/ 13 мая 2011

Похоже, PHPUnit не находится на вашем пути включения. Чтобы легко проверить это, попробуйте это:

$ phpunit --include-path /path/to/PHPUnit StackTest 
0 голосов
/ 12 июня 2018

Эта ошибка также может быть вызвана тем, что вы забыли, чтобы ваш тестовый класс расширял класс PHPUnit TestCase, например

class MyTestClass extends \PHPUnit\Framework\TestCase { ...
0 голосов
/ 29 января 2014

Мне удалось решить проблему.Это было результатом того, как я загружал класс.Я использовал мои аргументы в массиве аргументов, и это сработало.Но было много других проблем с classpath и т. Д., Которые я должен был сначала исправить.Чтобы увидеть рабочее решение, смотрите здесь (http://www.siteconsortium.com/h/p1.php?id=php002).

$command = new PHPUnit_TextUI_Command();
$command->run(array('test', 'testCase', 'c:\workspace\project\testCase.php'), true);
0 голосов
/ 11 марта 2013

В моем случае эта проблема была вызвана включением PHPUnit в исходный файл через require_once:

require_once 'phar://phpunit.phar';

Удаление этой строки сделало мой тестовый запуск пригодным.

0 голосов
/ 15 мая 2011

Попробуйте

pear upgrade pear

(если вас попросят обновить канал, сделайте это)

, а затем

pear install --force --alldeps phpunit/phpunit

и повторите попытку.

Обновление 3.5 в сочетании с глючным установщиком груши (1.9.1 имеет своего рода досадную ошибку, поэтому убедитесь, что вы действительно на 1.9.2) иногда может быть болезненным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...