Codeceptioncestテストで1つのテストだけをスキップしたい。
Ceptテストを使用すると、$scenario->skip();
を実行できますが、Cestテストでは機能しません。
だから私はこのようなことをしたいです。最初のテストを実行しますが、2番目のテストはスキップします。
Class MyTests{
public funtion test1(){
// My test steps
}
public function test2(){
$scenario->skip("Work in progress");
}
}
前もって感謝します。
あなたが探している方法は「不完全」と呼ばれます。
$scenario->incomplete('your message, why skipping');
Cestファイルでシナリオを使用する場合は、テストメソッドの2番目のパラメーターを使用してシナリオを取得できます。
_class yourCest
{
public function yourTest(WebGuy $I, $scenario)
{
$scenario->incomplete('your message');
}
}
_
または、$scenario->skip('your message')
を使用できます
_class yourCest
{
public function yourTest(WebGuy $I, $scenario)
{
$scenario->skip('your message');
}
}
_
ユニットテストにはskip
アノテーションを使用します。
/**
* @skip
*/
public function MyTest(UnitTester $I)
{
...
}
まず、使用できるコマンドは、ロードしたモジュールとスイートによって異なることを覚えておいてください。たとえば、デフォルトのWordPress有効なYMLで統合テストを実行している場合:
$scenario->skip('your message');
箱から出してCestまたはTestで機能することはありませんが、Acceptanceで機能します。
実際、通常、このコマンドはCeptテストで機能します[Ceptは通常、テストのようなAcceptanceであり、CestsとTestsは通常OOP tests]のようなPHPUnitです。また、関数に$ scenarioを渡す必要があります。 。これは明確に文書化されておらず、Cestsで機能させることができません。BDDフレームワークのキーワードとして「$ scenario」を選択するのがいかに悪いかについては始めないでください。「シナリオ」はキーワードです。ガーキンでは、Codeceptionの「ステップオブジェクト」とは何かを指します。Codeceptionでは、環境、スイート、グループがすでに存在するにもかかわらず、冗長な形式の「環境」として使用されているようです。この優れたフレームワークのほとんどと同様に、ドキュメントと関数の名前は、英語を母国語とする人が2度目にやり直す必要があります![「ウェブガイ」を覚えていますか?ヨーロッパ人のセクシストです!笑]。
あなたが使用する場合
/**
* @skip
*/
public function myTest(){
//this test is totally ignored
}
CestまたはTestで関数のすぐ上にある注釈はスキップされ、レポートにも表示されません。 [本当にスキップしてください]。テストを完全に非表示にする場合は、これを使用します。
PHPUnitコマンドを直接使用する場合:
public function myTest(){
throw new \PHPUnit_Framework_SkippedTestError('This test is skipped');
//this test will appear as a yellow “skipped” test in the report
}
これにより、レポートでスキップされたテストが生成され、HTMLレポート[--html]で黄色に変わります。テストをスキップしたいが、レポートでスキップされたことに気付いた場合は、これを使用します。
PHPUnit_Framework_SkippedTestErrorを使用します。例えば:
if (!extension_loaded('mongo')) {
throw new \PHPUnit_Framework_SkippedTestError(
'Warning: mongo extension is not loaded'
);
}
したがって、テスト実行中にシナリオをスキップするには、次のようにします。