3

テスト ケースのすべてのテストは、最初のテスト パスに依存します。これで、@depends アノテーションを残りのテストに追加できることがわかりましたが、他のすべてのテスト メソッドにアノテーションを追加するショートカットを探しています。PHPUnitに「これが失敗した場合は残りのテストをスキップする」ように指示する方法はありますか?

4

2 に答える 2

6

ゴードンの答えにsetUp似ていますが、最初のテストをsetUp. 唯一の違いは、現在のように最初のテストが 1 回だけ実行されることです。

private static $firstPassed = null;

public function setup() {
    if (self::$firstPassed === false) {
        self::markTestSkipped();
    }
    else if (self::$firstPassed === null) {
        self::$firstPassed = false;
    }
}

public function testFirst() {
    ... the test ...
    self::$firstPassed = true;
}
于 2012-09-04T18:51:48.857 に答える
6

その特定のテストを setup() メソッドに追加できます。これにより、このテストに失敗したすべてのテストがスキップされます。

public function setup()
{
    $this->subjectUnderTest = new SubjectUnderTest;
    $this->assertPreconditionOrMarkTestSkipped();
}

public function assertPreconditionOrMarkTestSkipped()
{
    if ($someCondition === false) {
        $this->markTestSkipped('Precondition is not met');
    }
}
于 2012-09-04T17:09:40.017 に答える