19

IDE PhpStorm で PHPUnit テストを実行しようとしても、ほとんど問題はありません。

次のようなコンポーザーファイルを使用します。

{
    "require": {
        "phpunit/phpunit": "3.7.19"
    }
}

テストを実行すると、例外が発生します。 PHP Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.'

なにが問題ですか?pear をインストールしたバージョンのテストを含めると、正常に動作しました。

// EDIT サンプル テスト クラス:

 class ReaderTest extends PHPUnit_Framework_TestCase
    {
        /**
         * @test
         */
        public function shouldGetReadedValue ()
        {
            $this->assertTrue(true);
        }
    }

// EDIT2 トレース:

/usr/bin/php /tmp/ide-phpunit.php --no-configuration /path/to/my/project
Testing started at 14:53 ...
PHP Fatal error:  Uncaught exception 'PHPUnit_Framework_Exception' with message 'Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.' in /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:183
Stack trace:
#0 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(315): PHPUnit_Framework_TestSuite->__construct(Object(ReflectionClass))
#1 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(389): PHPUnit_Framework_TestSuite->addTestSuite(Object(ReflectionClass))
#2 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php(416): PHPUnit_Framework_TestSuite->addTestFile('/var/www/php-sh...')
#3 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Runner/BaseTestRunner.php(96): PHPUnit_Framework_TestSuite->addTestFiles(Array)
#4 /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php(150): PHPUnit_Runner_BaseTestRunner->getTest('/var/www/php-sh...', '', A in /path/to/my/project/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php on line 183

Process finished with exit code 255
4

4 に答える 4

12

この問題の解決策を見つけました。

/path/to/my/project/testsこのテストが適切に実行された後、[ディレクトリ内の構成の編集] で、テスト カタログ ( ) へのパスを設定します。

于 2013-04-15T06:26:41.280 に答える
6

上記の Pi​​otr の回答のおかげで、これは私にとってはうまくいきましたが、ここで私がしなければならなかったすべての手順について、もう少し正確な詳細を提供しています。

動作させる手順 (PHPStorm 8.0.1 でテスト):

1) Preferences > PHP > PHPUnit デフォルト設定ファイルまたはデフォルト ブートストラップ ファイルに何も設定されていないことを確認します。

2) サブセクションでカスタム PHPUnit 構成を作成 Run > Edit Configurations > し、次の Command Line ことを確認します。

a) に設定 Custom working directory: します /absolute/path/to/vendor

b) 「別の構成ファイルを使用する:」にチェックを入れ、次のように設定します。 /absolute/path/to/vendor/your_app/(sub_app_if_applicable)/phpunit.xml.dist

次に、クラスとファイルを指定してスイート内の任意のテスト クラスを実行するか、[構成ファイルで定義] をオンにして構成に従ってすべてのテスト クラスを実行できます。

于 2014-11-27T02:55:25.810 に答える
5

composerを使用する場合も同じ問題があります。

解決策は、テスト ファイルを独自のディレクトリに配置することです。これが私の作業中のphpunitです。すべてのテストをtestディレクトリに入れました。

<phpunit bootstrap="vendor/autoload.php" 
    colors="true"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true"
    convertWarningsToExceptions="true"
    stopOnFailure="true">
    <testsuites>
        <testsuite name="Test Suite">
            <directory>test</directory>
        </testsuite>
    </testsuites>
</phpunit>

誰かが同じ問題を抱えていれば解決することを願っています.. :)

于 2013-06-23T02:22:53.680 に答える