2015-12-17 38 views
1

我遇到的问题是每次运行黄瓜场景后机车不会被终止。然后,我被留下孤儿硒过程,例如:黄瓜,PicoContainer&Conductor Framework的多态步骤定义

501 75709  1 0 1:29PM ??   0:00.05 /Users/rich/IdeaProjects/selenium/chromedriver.mac --port=45715 
501 75720  1 0 1:29PM ??   0:00.04 /Users/rich/IdeaProjects/selenium/chromedriver.mac --port=12004 

这是我PicoContainer的设置类,这样它会注入机车的一个实例到每个黄瓜方案(其它):

public class CustomPicoFactory extends PicoFactory { 

    public CustomPicoFactory() { 
     addClass(Locomotive.class); 
    } 
} 

此项目是我cucumber.properties文件:

cucumber.api.java.ObjectFactory = CustomPicoFactory 

下面是一个例子步骤定义类:

public class BorrowerSteps { 

    Locomotive locomotive; 

    public BorrowerSteps(Locomotive locomotive) { 
     this.locomotive = locomotive; 
    } 
} 

是否有某种形式的清理方法是运行的每个场景后,我可以打电话吗?或者我正在努力实现的更好的方式?

+0

你为什么要注射机车实例?你的测试班不应该扩展机车,就像[例子](http://conductor.ddavison.io/examples/)一样?也许如果你会发布你的测试/步骤课程的可重复的例子,这将是有道理的。 – eis

+1

我正在注入机车的实例,以便我可以在场景中的Cucumber步骤之间共享相同的实例。如果我在每个Cucumber步骤定义类中扩展Locomotive,则每个场景都会有多个机车实例。我会开始创建一个例子,以便事情更清楚。 – risteard

回答

0

的chromedriver被保持打开,因为在一个机车对象实例化,创建chromedriver。

直到调用driver.quit()才会被杀死。为了做到这一点,你可以拨打locomotive.teardown()locomotive.driver.quit()

+0

非常感谢@sircapsalot - 我添加了一个完成后的脚本步骤。 – risteard