2017-06-10 8 views
0

キュウリと既存のtestngプロジェクトを統合する方法はありますか?現在、私たちのプロジェクトでは、Pageオブジェクトモデルでtestngを使用しています。今度はキュウリも入れてみることにしました。しかし、キュウリはシナリオの数がn個あるフィーチャファイルを使用しているため、私たちは傾けることができないと思います。しかし、@testメソッドに基づいて実行をテストします。 だから、キュウリ+テストニングを統合できるかどうか、もしそうなら、キュウリを使って各テストメソッドをどのように実行できるか教えてください。キュウリセレンとTestNGの統合Java

+0

あなたはすでに答えを知っていますが、キュウリで作業するための機能ファイルが必要です – kushal

+0

このhttp://sahajamit.github.io/Cucumber-JVM-with-TestNG/を見てください。基本的には移動する必要がありますテストメソッドのコードをステップ定義に変換します。既存のテスト方法を継続したい場合、キュウリを挿入することの論理または利点は何ですか? – Grasshopper

答えて

0

実行中のキュウリのシナリオ/機能は、TestNGランナーを使用することができ、値を追加しますが、逆はありません。あなたはキュウリランナーでTestNGを実行することで何を達成したいですか?既存のTestNGテストで記述的なステップレベルのレポートを作成する場合は、QAFを使用して開始することができます。

0

はい。 Cucumber JVM + Test NGを統合することができます。

キュウリJVMは、TestNGの@Test Methodで使用できます。最後にSystem.exit(0)があるので、Cucumber APIのMain.mainは使用しないでください。代わりに、キュウリのMain.runを使用することができます。 Testメソッドでrunメソッドを呼び出します。

Main.main(new String[]{"-g", "package", "path of feature file"}, ClassLoader.getClassLoader); 

runメソッドにはclassLoaderが必要なため、必要に応じて独自のクラスローダーを生成します。

public static byte run(String[] argv, ClassLoader classLoader) throws IOException { 
      RuntimeOptions runtimeOptions = new RuntimeOptions(new ArrayList<String>(asList(argv))); 

     ResourceLoader resourceLoader = new MultiLoader(classLoader); 
     ClassFinder classFinder = new ResourceLoaderClassFinder(resourceLoader, classLoader); 
     Runtime runtime = new Runtime(resourceLoader, classFinder, classLoader, runtimeOptions); 
     runtime.run(); 
     return runtime.exitStatus(); 

}

また、mainメソッドを実行するために、独自のクラスローダを作成することができます。