Я установил PHPUnit в Windows 7 с PHP и Pear.
У меня есть базовый тестовый скрипт, который начинается с:
<?php class StackTest extends PHPUnit_Framework_TestCase { public function testTest() { $this->assertTrue(false); } }
Я запускаю его из командной строки:
phpunit unittest testTest.php
И получив следующий доход:
PHPUnit 3.6.5 by Sebastian Bergmann. F Time: 0 seconds, Memory: 2.75Mb There was 1 failure: 1) StackTest::testTest Failed asserting that false is true. C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Constraint.php:145 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Constraint.php:92 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Assert.php:2100 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Assert.php:854 C:\Users\lbassett\Dropbox\Projects\Test\testTest.php:10 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestCase.php:939 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestCase.php:801 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestResult.php:649 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestCase.php:748 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestSuite.php:772 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestSuite.php:745 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\TextUI\TestRunner.php:325 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\TextUI\Command.php:187 C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\TextUI\Command.php:125 C:\Program Files (x86)\PHP\PEAR\phpunit:44 FAILURES! Tests: 1, Assertions: 1, Failures: 1.
Моя проблема заключается в длинном списке разных файлов.
Я только хочу увидеть свой тестовый скрипт. Я что-то упускаю?
Это ошибка в PHPUnit. Я исправил это. Со следующим небольшим выпуском он будет работать.
Вы уже заметили, что ваш файл включен в backtrace
C:\Users\lbassett\Dropbox\Projects\Test\testTest.php:10
поэтому вопрос в том, почему есть все, что другие вещи вокруг ваших классов.
PHPUnit должен отфильтровать этот backtrace и вычеркнуть все классы PHPUnit, но по некоторым причинам, которые, похоже, не работают.
Вывод на linux:
PHPUnit 3.6.5 by Sebastian Bergmann. F Time: 0 seconds, Memory: 3.00Mb There was 1 failure: 1) failingTest::testFail Failed asserting that false is true. /home/edo/phpunit-dev/oneFailingTest/failingTest.php:6
Сначала я ожидал проблемы с пробелами в Program Files
но я установил ее в папку без пробелов, и она тоже «ломается».
Для меня это ошибка в PHPUnit.
Я предлагаю Изменить: я нажал исправление . Он должен быть решен в you file an issue at the github issue tracker
указать you file an issue at the github issue tracker
, чтобы фильтрация backtrace была разбита на окна, и я посмотрю, смогу ли я позаботиться об этом.PHPUnit 3.6.6
(когда он будет выпущен). См. Правки.
Редактировать: Да. Проблема, похоже, исходит из PHPUnit_Util_Filter :: phpunitFiles (); возвращая пути с \
вместо /
.
Если вы поместите следующий код в: PHPUnit/Util/GlobalState.php
в строке 412. (Перед операцией return)
foreach(self::$phpunitFiles as $key => $value) { unset(self::$phpunitFiles[$key]); self::$phpunitFiles[str_replace("/", "\\", $key)] = $value; }
неforeach(self::$phpunitFiles as $key => $value) { unset(self::$phpunitFiles[$key]); self::$phpunitFiles[str_replace("/", "\\", $key)] = $value; }
то вы получите красивую обратную сторону. Я позабочусь о том, чтобы он был исправлен в 3.6.6 с более приятным патчем.