IDEの中では、個々の.featureファイルを右クリックしてもうまく動作するが、そうではないRunnerクラスのいずれかのパラメータを読み込みます。コマンドラインから、それは正常に動作します。 mvn clean compile test -Dcucumber.options="--tags @calculator"
IDE内の.featureファイルを実行してもキュウリランナークラスが読み取られない
私は複数のWebアプリケーションを処理するために単一のフレームワークを使用しています。したがって、各アプリは別々のサブフォルダにあります。
+---test
+---java
+---com
+---company
+---app
¦ +---app1
¦ ¦ +---common
¦ ¦ +---page
¦ ¦ +---step
¦ +---app2
¦ +---common
¦ +---page
¦ +---step
+---core
フレームワークは、そうpage
は、各ページの詳細が含まれますcommon
は全体のアプリ間で共通の機能のためになり、そしてstep
を考えると、ときに、その後のステップのためにあるのPageObjectモデルを使用します。
+---resources
+---com
+---company
+---app
+---app1
¦ +---feature files go here
+---app2
+---feature files go here
ランナークラスはメインapp
フォルダ内にあります。
package com.company.app;
import com.company.core.Browser;
import com.company.core._Start;
import cucumber.api.CucumberOptions;
import cucumber.api.SnippetType;
import cucumber.api.junit.Cucumber;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import java.io.File;
import java.net.InetAddress;
import java.net.UnknownHostException;
@RunWith(Cucumber.class)
@CucumberOptions(
plugin = {"pretty",
"html:target/cucumber",
"json:report/report.json",
"com.cucumber.listener.ExtentCucumberFormatter:"
},
tags = {"[email protected]"},
snippets = SnippetType.CAMELCASE
)
public class _RunnerTest extends _Start {
private static String reportFile = "report.html";
private static String configFile = "extent-config.xml";
@BeforeClass
public static void setup() {
// Stuff
}
@AfterClass
public static void teardown() {
// Stuff
}
}
Mavenのコマンドラインから実行すると、すべて正常に動作します。 .featureファイル(またはそれを含むシナリオ)を右クリックすると、テストは実行されますが、ランナークラスは使用されないため、レポートは存在せず、@ BeforeClassと@AfterClassは無視されます。
紛失しているものがありますか?
私の最後で試してみました。同じ問題に遭遇する。しかし、 '@ BeforeClass'と' @ AfterClass'はランナークラスまたはステップ定義クラスにあります。 また、機能ファイルを直接実行しているため、ランナークラスとのやりとりがないため、コードは実行されません。 –
@AshishDeshmukhのように、 '' @ BeforeClass''と '' @ AfterClass'''はランナーの一部です。現時点では、コールを報告するだけです。理想的には、私はブラウザの起動を入れてそこにシャットダウンしたいと思います。しかし、ランナーはIDE内で実行されている場合は呼び出されていないので、それは無意味です。 – MivaScott
私はあなたが言ったことを達成するために(ブラウザの起動とシャットダウンを行うために)、私たちは同じもののための別の機能を作成し、ランナークラスを使用するのと同じ効果を達成するためにネストされた手順を使用することができます。 –