2013-04-12 32 views
18

IDE PhpStormでPHPUnitテストを実行しようとしているときに少し問題があります。私は、テストを実行すると、私は例外をrecivePhpStormから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.'

間違っていますか?私が梨をインストールしたときにバージョンテストが正常に動作しました。

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

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

// EDIT2 トレース:PHPUnit_Framework_TestSuiteのインサイド

/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 
+1

ユニットテストを表示できますか?テストクラスはPHPUnit_Framework_TestCaseを拡張しますか? –

+1

質問を編集し、サンプルテストクラスを追加します。テストクラスはほとんどありません。 –

答えて

12

この問題についての解決策が見つかりました。

ディレクトリ内の設定を編集していますが、このテストが正しく実行された後、テストカタログ(/path/to/my/project/tests)へのパスを設定しました。

+2

パスは、 '実行>設定の編集> PhpUnit' 経由で設定する必要があることに注意することが重要です。'ディレクトリ 'を設定できます。 PhpStormの 'File> Settings'ではこれを見つけられません(!)。 – k0pernikus

0

、このコードexists in the constructor

if (!$theClass->isSubclassOf('PHPUnit_Framework_TestCase')) { 
    throw new PHPUnit_Framework_Exception(
     'Class "' . $theClass->name . '" does not extend PHPUnit_Framework_TestCase.' 
    ); 
} 

は、私はあなたのたとえば、あなたがPHPUnit_Framework_TestCaseを拡張しているに表示されますがエラーは、最終的にエラーが実行しようとしている示唆しているので、あなたのテストをチェックダブルPHPUnit_Framework_Assert

PHPUnit_Framework_Assert 
    | 
    --PHPUnit_Extensions_TestDecorator 
     | 
     --PHPUnit_Extensions_RepeatedTest 

を拡張PHPUnit_Extensions_TestDecorator拡張PHPUnit_Extensions_RepeatedTestを使用している可能性がテストを使用するTestSuite PHPUnit_Extensions_RepeatedTest。テストデコレータを使用してPHUnitを拡張しようとしていましたか?私は現在、あなたの実際のテストを見て、どのようにあなたがそれらを実行していることなく、提供することができるすべてのアドバイスです

http://docs.tadiavo.com/phpunit/www.phpunit.de/pocket_guide/3.1/en/extending-phpunit.html

+0

OKですが、コンソールからテストを実行するとすべてが問題ないのですか?私は私のテストが良いと確信しています。 私は外部ライブラリを含むようにPHPUnitを使用しており、PhpStormで適切な設定を行うとうまく動作します。 –

+0

あなたの質問は、PHPStormでは動作しないと述べています。おそらく、あなたはIDEが正しく構成されていないのでしょうか? –

+0

マニュアルのようにIDEを設定しました。私は依存関係を正常に追加し、カスタムローダーを 'vendor/autoload.php'に設定しました。それが私のしたことです。 –

5

コンポーザーを使用しているときも同じ問題があります。

解決策は、テストファイルを独自のディレクトリに配置することです。ここに私の働いている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> 

は...誰もが同じ問題を抱えている場合、それは解決を願って:)

5

これは、私のために働いていたものを上記ピョートルの答えのおかげで、私はすべてここにもう少し正確な詳細を提供しています私がしなければならなかったのステップ:

のステップ、それは(PHPStorm 8.0.1でテスト)動作させるために:

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

2)Command LineのサブセクションでRun > Edit Configurations >を経由してカスタムPHPUnitの設定を確認して、点を確認してください。

A)/absolute/path/to/vendorするCustom working directory:を設定します。

b)は、「別の設定ファイルを使用します」にチェック次にあなたが設定で定義された」クラスとファイルを指定することで、スイート内の任意のテストクラスを実行するか、単にチェックできると/absolute/path/to/vendor/your_app/(sub_app_if_applicable)/phpunit.xml.dist

に設定ファイル "を使用して、設定に従ってすべてのファイルを実行します。

関連する問題