2017-11-02 5 views
1

タイトルはこの時点で少し混乱するかもしれません。うまくいけば私はそれをクリアすることができます。機能ファイルなしでキュウリJVM @BeforeClassを実行

私は私が私達のシステムのテストケースを自動化するセレンwebdriverをとキュウリJVMを実行している

を持っているもの。これらのテストケースは現在、XRay Test Managementプラグインを使用してJIRAに保存されています。 XRayには、フィーチャー・ファイルをフェッチしたり、結果をJIRAにアップロードしたりするためのAPIも用意されています。だけでなく、それが仕事をしていることを実証 -

私はフィーチャーファイルとしてテストをダウンロードしてからとJIRAにテスト結果をアップロードするカスタムJIRAのユーティリティクラスを作成しました。これらはそれぞれCucumber Runnerクラスの@BeforeClassと@AfterClassで実行されます。

私はまた、開発したテストフレームワークを手動で自分のコンピュータ上で作成された機能ファイルを実行して作業を行うことを明らかにしました。私は

は私が(最終的に)私たちのCIツールで自動的に自動テストフレームワークを実行できるようにしたい欲しいもの

。これに伴い、JIRAから定義された自動化テストが引き出され、テスト結果がJIRAにプッシュされます。

私はコードで格納されている特徴ファイルを望んでいません。私の意見では、実行するテストが(実行された回数と実行されるステップで)時間とともに変化するため、これは動的であるという目的を破るものです。

何が起きている(またはそれ以上具体的には、起きていない)

私は枠組みの中で任意の機能ファイルなしキュウリランナークラスを実行しようと、キュウリは、/「[SRC /テストでは見つかりません機能を言いませんリソース/機能/] "まだフィーチャーファイルがないので、これは理解できます。

しかし、それは@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のコードを実行することができますので、私は機能ファイルをダウンロードできますか?

私が望むものを達成することは可能ですか?あるいは、私は敗北を認め、すべての機能ファイルをコードと共に保存しなければなりませんか? JUnitのを使用しているとき

答えて

0

これは正常な動作です。スイートにテストがない場合、またはすべてのテストが無視される場合は、@BeforeClass,@AfterClassまたは@ClassRuleは呼び出されません[1]。これは、無駄になる可能性のある高価なセットアップの実行を回避する。

これは、あなたのテストをブートストラップするために、クラスのルールを使用することはできませんを意味します。そうしようとするべきではありません。ビルドプロセスでは、コンパイルの前にすべてのソースとリソースをフェッチすることをお勧めします。

mavenを使用している場合は、代わりにmavenを書き込み、それをgenerate-test-sourcesフェーズ[2]に添付することができます。 Mavenプラグインの作成は、JUnitのルールにはもう少し複雑ですが、それほど厳しいものではありません。 Guide to Developing Java Pluginsを確認してください。

私はGradleにも同様のオプションがあると仮定します。

+1

これははるかに良く機能しました!私は同じタスクを達成するために2つのMavenプラグインを作成し、必要に応じて動作します。提案に感謝します。 –

関連する問題