verifyTextのようなメソッドは失敗の行番号を報告しないため、失敗のポイントを見つけるのが困難になります。
SeleniumIDEPHPUnitエクスポートによって作成されたコードは次のようになります。
try {
$this->assertEquals($text, $this->getTitle());
} catch (PHPUnit_Framework_AssertionFailedError $e) {
array_push($this->verificationErrors, $e->toString());
}
この行の出力は、以下の2行目のようになりますが、これは完全に追跡できません。
Failed asserting that '' matches PCRE pattern "/Harlem/".
Failed asserting that two strings are equal.
Failed asserting that '(Pattern A)' matches PCRE pattern "/\(Pattern B\)/".
テキストの失敗を検索できるように参照テキストを含めるように呼び出しを修正しましたが、大規模なテストではこれでは不十分です。コード内の検証の失敗ごとに行番号/スタックトレースを取得するにはどうすればよいですか?
public function verifyTitle($text) {
$title = $this->getTitle();
try {
$this->assertEquals($text, $title);
} catch (PHPUnit_Framework_AssertionFailedError $e) {
array_push($this->verificationErrors,
"Title is '$title' but should be '$text'");
}
}
注:アサーション用のコードへの参照を返すスタックトレースを取得するために、スタックトレースハックを使用しています