Я пытаюсь запустить тесты в своем новом проекте. Структура директорий выглядит следующим образом:phpunit пытается включить каталоги при заданном пустом суффиксе
src/ (project's code here)
test/
EviType/
Main.php
phpunit.xml
composer.json
PHPUnit установлен с композитором (так называемый для каждого проекта зависимостей):
{
"require-dev": {
"phpunit/phpunit": ">=3.7.5"
},
}
И я бегу composer install/update
с --dev
опцией.
конфигурация PHPUnit определяется с минималистичным test/phpunit.xml
:
<?xml version="1.0" encoding="utf-8"?>
<phpunit colors="true">
<testsuites>
<testsuite>
<directory suffix="">EviType</directory>
</testsuite>
</testsuites>
</phpunit>
И тест-код в test/EviType/Main.php
также короче, как это может быть:
<?php
class Main extends PHPUnit_Framework_TestCase
{
public function test()
{
$this->assertTrue(true);
}
}
Так что, когда я бегу PHPUnit:
php54 -C vendor/bin/phpunit -c test/
(В системе имеется ряд версий php установлено, php54 мой псевдоним для /usr/local/php54/bin/php
)
Я получаю пару аккуратных предупреждающих сообщений:.
X-Powered-By: PHP/5.4.5
Content-type: text/html
<br />
<b>Warning</b>: include_once(/path/to/docs/test): failed to open stream: Success in <b>/path/to/docs/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php</b> on line <b>92</b><br />
<br />
<b>Warning</b>: include_once(): Failed opening '/path/to/docs/test' for inclusion (include_path='/path/to/docs/vendor/phpunit/phpunit/:/path/to/docs/vendor/phpunit/phpunit/../../symfony/yaml:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-text-template/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-token-stream/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-file-iterator/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-code-coverage/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-timer/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/phpunit-mock-objects/:.:/usr/local/php54/lib/php') in <b>/path/to/docs/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php</b> on line <b>92</b><br />
<br />
<b>Warning</b>: include_once(/path/to/docs/test/EviType): failed to open stream: Success in <b>/path/to/docs/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php</b> on line <b>92</b><br />
<br />
<b>Warning</b>: include_once(): Failed opening '/path/to/docs/test/EviType' for inclusion (include_path='/path/to/docs/vendor/phpunit/phpunit/:/path/to/docs/vendor/phpunit/phpunit/../../symfony/yaml:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-text-template/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-token-stream/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-file-iterator/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-code-coverage/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/php-timer/:/path/to/docs/vendor/phpunit/phpunit/vendor/phpunit/phpunit-mock-objects/:.:/usr/local/php54/lib/php') in <b>/path/to/docs/vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php</b> on line <b>92</b><br />
PHPUnit 3.7.14 by Sebastian Bergmann.
Configuration read from /path/to/docs/test/phpunit.xml
.
Time: 0 seconds, Memory: 2.50Mb
OK (1 test, 1 assertion)
В докладе утверждения делает меня счастливым, но я не могу понять, почему он даже пытается включить каталоги :
include_once(/path/to/docs/test)
, а также то, что означает загадочное failed to open stream: Success
положение. Казалось, это php bug, но он должен быть исправлен, как давно.
Настройка что-то вроде:
<php>
<ini name="display_errors" value="0"/>
</php>
делает эти предупреждения исчезают, но я чувствую, что есть более глубокая проблема в установке PHPUnit, чтобы откапывать.
Любые предложения?
О, я вижу сейчас, я действительно должен. Спасибо, что поняли! Я считаю, что это проблема с PHPUnit. Какой бы ни был суффикс, в том числе каталоги - это не то, что нужно делать. –