2013-03-18 3 views
0

Я пытаюсь запустить тесты в своем новом проекте. Структура директорий выглядит следующим образом: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, чтобы откапывать.

Любые предложения?

ответ

1

Вы действительно должны установить суффикс в ".php" - иначе phpunit пытается включить в него все файлы, в которых есть "", которые являются всеми файлами и всеми каталогами.

+0

О, я вижу сейчас, я действительно должен. Спасибо, что поняли! Я считаю, что это проблема с PHPUnit. Какой бы ни был суффикс, в том числе каталоги - это не то, что нужно делать. –

Смежные вопросы