PHPUnitを使用したテストを無視するために、PHPテストメソッドの横に配置する必要がある属性は何ですか?
NUnitの属性は次のとおりです。
[Test]
[Ignore]
public void IgnoredTest()
グループ注釈 を使用してテストにタグを付け、それらのテストを実行から除外できます。
/**
* @group ignore
*/
public void ignoredTest() {
...
}
次に、すべてのテストを実行できますが、次のようなテストは無視されます。
phpunit --exclude-group ignore
最も簡単な方法は、テストメソッドの名前を変更し、「test」で始まる名前を避けることです。そうすれば、@test
を使用して実行するようにPHPUnitに指示しない限り、そのテストは実行されません。
また、特定のテストをスキップするようにPHPUnit に指示することもできます :
<?php
class ClassTest extends PHPUnit_Framework_TestCase
{
public function testThatWontBeExecuted()
{
$this->markTestSkipped( 'PHPUnit will skip this test method' );
}
public function testThatWillBeExecuted()
{
// Test something
}
}
メソッドmarkTestIncomplete()
を使用して、PHPUnitのテストを無視できます。
<?php
require_once 'PHPUnit/Framework.php';
class SampleTest extends PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Optional: Test anything here, if you want.
$this->assertTrue(TRUE, 'This should already work.');
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
}
?>
コメントの1つでテストの内容を変更したくないと提案したので、注釈を追加または調整したい場合は、@requires
アノテーションはテストを無視します:
<?php
use PHPUnit\Framework\TestCase;
class FooTest extends TestCase
{
/**
* @requires PHP 9000
*/
public function testThatShouldBeSkipped()
{
$this->assertFalse(true);
}
}
注これはPHP 9000がリリースされるまで機能し、テストの実行結果は少し誤解を招きます。も:
There was 1 skipped test:
1) FooTest::testThatShouldBeSkipped
PHP >= 9000 is required.
参考のために、以下を参照してください。
最初にtest
を付けずにメソッドに名前を付けると、そのメソッドはPHPUnitによって実行されません( ここ を参照)。
public function willBeIgnored() {
...
}
public function testWillBeExecuted() {
...
}
test
で始まらないメソッドを実行したい場合は、アノテーション@test
を追加して、とにかくそれを実行できます。
/**
* @test
*/
public function willBeExecuted() {
...
}