PHPUnitテストをIDE PhpStorm。
私はcomposerファイルを使用します:
{
"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トレース:
/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
この問題の解決策を見つけました。
ディレクトリの構成の編集で、テストカタログ(/path/to/my/project/tests
)、このテストが適切に実行された後。
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>
誰かが同じ問題を抱えている場合はそれが解決することを願っています.. :)
上記のPiotrの回答のおかげで、これは私にとってうまくいきましたが、ここで私がしなければならなかったすべてのステップについて、もう少し正確な詳細を提供します。
動作させるための手順(PHPStorm 8.0.1でテスト):
1)In _Preferences > PHP > PHPUnit
_ デフォルトの構成ファイルまたはデフォルトに何も設定されていないことを確認してくださいbootstrap file。
2)カスタムPHPUnit構成を作成する _Run > Edit Configurations >
_ in the _Command Line
_ subsection、and be to be to ::
a)セット _Custom working directory:
_ 予定 _/absolute/path/to/vendor
_。
b)「代替構成ファイルを使用する:」をチェックし、次のように設定します/absolute/path/to/vendor/your_app/(sub_app_if_applicable)/phpunit.xml.dist
次に、クラスとファイルを指定してスイート内の任意のテストクラスを実行するか、「構成ファイルで定義」をオンにして、構成に従ってそれらすべてを実行できます。
PHPUnit_Framework_TestSuite内で、このコード コンストラクターに存在 :
if (!$theClass->isSubclassOf('PHPUnit_Framework_TestCase')) {
throw new PHPUnit_Framework_Exception(
'Class "' . $theClass->name . '" does not extend PHPUnit_Framework_TestCase.'
);
}
あなたの例でPHPUnit_Framework_TestCase
を拡張しているようですが、エラーはPHPUnit_Extensions_RepeatedTest
を拡張していることを示唆していますPHPUnit_Extensions_TestDecorator
は最終的に拡張しますPHPUnit_Framework_Assert
PHPUnit_Framework_Assert
|
--PHPUnit_Extensions_TestDecorator
|
--PHPUnit_Extensions_RepeatedTest
エラーがPHPUnit_Extensions_RepeatedTest
を拡張するテストを使用してTestSuiteを実行しようとしていることを示唆しているため、テストを再確認してください。代わりに、テストデコレータを使用してPHUnitを拡張しようとしていましたか?
http://docs.tadiavo.com/phpunit/www.phpunit.de/pocket_guide/3.1/en/extending-phpunit.html
これが、実際のテストとそれらの実行方法を確認せずに現在提供できるすべてのアドバイスです。