Полиморфные определения шагов с помощью структуры Cucumber, PicoContainer и Conductor

Проблема, с которой я сталкиваюсь, заключается в том, что "Локомотив" не останавливается после каждого сценария "Огурец". Тогда я остаюсь с осиротевшими процессами Selenium, например:

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, так что он будет внедрять экземпляр Locomotive в каждый сценарий Cucumber (что он и делает):

    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;
    }
}

Есть ли какой-нибудь метод очистки, который я могу вызвать после запуска каждого сценария? Или лучший способ сделать то, что я пытаюсь достичь?

1 ответ

Решение

Хромедрайвер остается открытым, потому что при создании экземпляра объекта "Локомотив" хромудривер создается.

Он не убит до driver.quit() называется. Для этого вы можете позвонить locomotive.teardown() или же locomotive.driver.quit()

Другие вопросы по тегам