Cucumber-command-line-options
提供:Dev Guides
キュウリ-コマンドラインオプション
キュウリは、ほぼすべてのコンピューターシステムのテストに使用できます。 これまで、Eclipse IDEを使用してテストを実行する方法を見てきました。 コマンドラインインターフェイスを使用してCucumberテストを実行する方法がもう1つあります。 それを行うことの利点は何ですか?
ターミナルからテストフレームワークを実行すると、コードに記載されている実行構成をオーバーライドするなど、独自の利点があります。
コマンドプロンプトでCucumberテストを実行するには、システム構成後に次の手順を使用します。
ステップ1- commandLine という名前のMavenテストプロジェクトを作成します。
- ファイル→新規→その他→Maven→Mavenプロジェクト→次へに移動します。
- グループIDを指定します(グループIDは、すべてのプロジェクトでプロジェクトを一意に識別します)。
- アーティファクトIDを提供します(アーティファクトIDは、バージョンのないjarの名前です。 小文字の任意の名前を選択できます)。
- 完了をクリックします。
- pom.xmlを開きます-
- Eclipseの左側にあるパッケージエクスプローラーに移動します。
- プロジェクトCucumberTestを展開します。
- pom.xml ファイルを見つけます。
- 右クリックして、「テキストエディター」で開くオプションを選択します。
- Seleniumの依存関係の追加-これは、Mavenを示します。どのSelenium jarファイルが中央リポジトリからローカルリポジトリにダウンロードされるかを示します。
- pom.xmlを開いて編集モードにし、プロジェクトタグ内に依存関係タグ(<dependencies> </dependencies>)を作成します。
- 依存関係タグ内で、依存関係タグを作成します。 (<dependency> </dependency>)。
- 依存関係タグ内に次の情報を提供します。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
- Cucumber-Javaの依存関係を追加-これはMavenを示します。どのCucumberファイルが中央リポジトリからローカルリポジトリにダウンロードされます。
- もう1つの依存関係タグを作成します。
- 依存関係タグ内に次の情報を提供します。
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
- Cucumber-JUnitの依存関係を追加-これはMavenを示します。どのCucumber JUnitファイルが中央リポジトリからローカルリポジトリにダウンロードされます。
- もう1つの依存関係タグを作成します。
- 依存関係タグ内に次の情報を提供します。
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
- JUnitの依存関係を追加-これは、Mavenを示します。どのJUnitファイルが中央リポジトリからローカルリポジトリにダウンロードされます。
- もう1つの依存関係タグを作成します。
- 依存関係タグ内で次の情報を提供します。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
- バイナリを検証します。
- pom.xmlが正常に編集されたら、保存します。
- [プロジェクト]→[クリーン]に移動します-数分かかります。
- ステップ2 *-src/test/javaの下に「outline」という名前のパッケージを作成します
- ステップ3 *-「commandLine.feature」という名前の機能ファイルを作成します。
- パッケージのアウトラインを選択して右クリックします。
- 「新規」ファイルをクリックします。
- ファイルに「commandLine.feature」などの名前を付けます ファイル内のテキストの下に書き込み、保存します。 * 機能*-シナリオの概要 *シナリオの概要-ソーシャルネットワーキングサイトのログイン機能。 +ユーザーがFacebookに移動する場合+ユーザー名を「<username>」として入力し、パスワードを「<password>」として入力した場合+ログインに失敗する
例
| username | password |
| username1 | password1 |
| username2 | password2 |
注意-ここで、注釈の例は、シナリオの実行時に提供される入力の範囲を示しています。 テストシナリオは、提供された各入力に対して実行されます。 したがって、この例では、テストシナリオが3回実行されます。
- ステップ4 *-ステップ定義ファイルを作成します。
- パッケージのアウトラインを選択して右クリックします。
- 「新規」ファイルをクリックします。
- ファイルに commandLine.java という名前を付けます
- ファイル内に次のテキストを記述して保存します。
package Outline;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then; i
import cucumber.annotation.en.When;
public class stepdefinition {
WebDriver driver = null;
@Given("^user navigates to facebook$")
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$")
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then("^login should be unsuccessful$")
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
}
注意-コードでは、2つの入力引数を持つ関数を定義する必要があります。1つはユーザー名、もう1つはパスワード用です。 したがって、タグ例で提供される入力の各セットに対して、GIVEN、WHEN、およびTHENのセットが実行されます。
- ステップ5 *-ランナークラスファイルを作成します。
- パッケージのアウトラインを選択して右クリックします。
- 「新規」ファイルをクリックします。
- ファイルに runTest.java などの名前を付けます
- ファイル内に次のテキストを記述して保存します。
package Outline;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
- コマンドプロンプトを開きます。
- このパッケージ「commandLine」が存在するディレクトリに移動します。 e:\ Workspace \ LoginTest \ src> cd test \ java
- コマンドmvn testを実行します:機能ファイルに記述されているすべてのシナリオが実行されていることがわかります(エラーがない場合)。 最後に、下部に次の情報があります。
結果
This describes the total test run, along with failure if any.
前のコマンドは、JUnit Runnerクラスで述べたようにすべてを実行します。 ただし、Runnerで説明されている構成をオーバーライドする場合は、以下のいくつかの例を使用してください。
- コマンドプロンプトでコマンドmvn test-Dcucumber.options = "-help"を実行します。 これを実行すると、利用可能なすべてのオプションが印刷されます。
- 特定のタグのみを実行するには、コマンドプロンプトでmvn test -Dcucumber.options = "-tags @SmokeTest"コマンドを実行します。 @SmokeTestでマークされたタグのみを実行します。
- 結果の形式を変更するには、コマンドプロンプトでコマンドE:\ Workspace \ LoginTest> mvn test -Dcucumber.options = "-plugin junit:target/cucumber-junit-report.xml"を実行してレポートを変更しますJUnitレポートジェネレーターにフォーマットします。