1

新しいプロジェクトでテストを実行しようとしています。ディレクトリのレイアウトは次のとおりです。

src/ (project's code here)    
test/
    EviType/
        Main.php
    phpunit.xml
composer.json

Phpunitはcomposer(いわゆるプロジェクトごとの依存関係)とともにインストールされます。

{
    "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のバグのようですが、昔のように修正する必要があります。

次のような設定:

<php>
    <ini name="display_errors" value="0"/>
</php>

これらの警告は消えますが、phpunitのインストールにはもっと深刻な問題があるように感じます。

助言がありますか?

4

1 に答える 1

2

実際には、サフィックスを「.php」に設定する必要があります。そうしないと、phpunitは、すべてのファイルとすべてのディレクトリである「」を含むすべてのファイルを含めようとします。

于 2013-03-19T10:32:00.053 に答える