如何将特定的Java文件与黄瓜中的特定功能文件匹配

时间:2019-06-24 22:40:15

标签: java eclipse selenium cucumber

我已经在黄瓜中创建了三个Java和功能文件,每个Java文件都有以下代码部分。

@Before
public void startbrowser() {
 System.setProperty("webdriver.gecko.driver","/Users/firatkaymaz/eclipse-workspace/SeleniumTest/drivers/geckodriver/geckodriver");
 driver = new FirefoxDriver();

因此,一旦我尝试运行我的一个黄瓜文件(以-> cucumber功能运行),就会打开三个浏览器,因为位于三个java文件中的所有@Before批注都正在执行。我该如何摆脱呢?我想将名为TestCase1.feature的功能文件与Case1.java匹配,因此当我执行相关功能文件时,将执行Case1,因此只能按预期打开一个浏览器。有什么主意吗?

files

2 个答案:

答案 0 :(得分:0)

在Cucumber中,您可以在pom文件中使用picocontainer,然后可以在一个类中分离通用方法“ startbrowser”。请参阅https://www.toolsqa.com/selenium-cucumber-framework/sharing-test-context-between-cucumber-step-definitions/

答案 1 :(得分:0)

另一种方法是对类使用@ScenarioScoped批注。您需要添加 cucumber-guice 到您的pom文件或其他文件。 然后,您可以将此注释添加到创建驱动程序的类中,并且在整个场景中将只有一个实例。 http://www.thinkcode.se/blog/2017/08/16/sharing-state-between-steps-in-cucumberjvm-using-guice