2017-06-10 61 views
0

有沒有什麼方法可以將黃瓜與現有的testng項目整合?目前,在我們的項目中,我們正在使用頁面對象模型的testng。現在我們決定也包括黃瓜。但我認爲我們不能,因爲黃瓜使用功能文件,我們可以有'n'個場景。但是基於@test方法測試它的運行。 那麼,讓我知道我們是否可以整合黃瓜+ testng,如果是的話,我們如何使用黃瓜運行每個@test方法。TestNG與黃瓜硒的整合Java

+0

你已經知道答案,你必須有功能文件才能與黃瓜 – kushal

+0

看看這個http://sahajamit.github.io/Cucumber-JVM-with-TestNG/...基本上你將不得不移動從您的測試方法代碼到步驟定義。如果要繼續使用現有的testng方法,插入黃瓜的邏輯或好處是什麼? – Grasshopper

回答

0

使用TestNG亞軍運行黃瓜場景/功能是可能的,它增加了價值,但反向並非如此。通過使用黃瓜跑步者運行TestNG你想達到什麼目的?如果您想通過現有的TestNG測試獲得描述性的步驟級別報告,您可以開始使用QAF

0

是的。你可以整合Cucumber JVM + Test NG。

您可以在TestNG的@Test方法中使用Cucumber JVM。不要使用Cucumber API的Main.main,因爲最後有一個System.exit(0)。相反,你可以使用黃瓜的Main.run。 在測試方法中調用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(); 

}

您也可以創建自己的類加載器來運行的主要方法。