この時点では、タイトルが少しわかりにくいかもしれません。うまくいけば、私はそれをクリアすることができます.
私が持っているもの
システムのテスト ケースを自動化するために、Selenium WebDriver で Cucumber JVM を実行しています。これらのテスト ケースは現在、XRay テスト管理プラグインを使用して JIRA に保存されています。XRay は、機能ファイルを取得するための API と、結果を JIRA にアップロードするための API も提供します。
テストを機能ファイルとしてダウンロードし、テスト結果を JIRA との間でアップロードするカスタム JIRA ユーティリティ クラスを作成し、それが機能することを実証しました。これらは、Cucumber Runner クラスの @BeforeClass および @AfterClass でそれぞれ実行されます。
また、開発したテスト フレームワークが、自分のコンピューターで作成された機能ファイルを手動で実行することによって機能することも実証しました。
私が欲しいもの
(最終的には) 自動化テスト フレームワークを CI ツールで自動的に実行できるようにしたいと考えています。これに加えて、定義された自動化テストを JIRA からプルし、テスト結果を JIRA にプッシュします。
機能ファイルをコードと共に保存したくありません。私の意見では、実行するテストは時間の経過とともに (実行される数とステップ自体が) 変化するため、これは動的であるという目的を無効にします。
何が起こっているか (より具体的には、起こっていないか)
フレームワークに機能ファイルがない状態で Cucumber Runner クラスを実行しようとすると、Cucumber は「[src/test/resources/features/] に機能が見つかりません」と表示します。(まだ) 機能ファイルがないため、これは理解できます。
ただし、@BeforeClass は実行されません。したがって、実行する機能ファイルをダウンロードしません。ランナークラスでタグの有無にかかわらずこれを試しました。
コード
@RunWith(Cucumber.class)
@CucumberOptions(
tags={"@smoketests"},
features= {"src/test/resources/features/"},
plugin={"json:target/reports/cucumber.json"},
monochrome=true)
public class RunCucumberTest {
@BeforeClass
public static void executeBeforeTests() {
JiraUtil.getFeatureFiles();
//String browser = "firefox";
String browser = "chrome";
//String browser = "safari";
//String browser = "edge";
//String browser = "ie";
DriverUtil.getInstance().setDriver(browser);
}
@AfterClass
public static void executeAfterTests() {
DriverUtil.getInstance().resetDriver();
JiraUtil.uploadTestResults();
}
}
私の質問に戻る
JIRA Util コードを実行して機能ファイルをダウンロードするにはどうすればよいですか?
私が望むものを達成することは可能ですか?それとも、敗北を認めて、すべての機能ファイルをコードと共に保存する必要がありますか?