2017-06-10 28 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(); 

}

您也可以创建自己的类加载器来运行的主要方法。