오이 후크를 살펴보면 전역 파일의 'before'및 'after'단계를 설정할 수 있습니다.이 단계는 기능 파일에서 지정할 필요없이 모든 시나리오에서 실행됩니다.
모든 시나리오에서 실행되기 때문에 각 테스트를 시작할 때 드라이버를 초기화하는 것과 같은 것이 좋습니다. 로그온을 실행하는 데는 적합 할 수 있지만 로그인이 필요하지 않은 시나리오가있는 경우에는 갈 길이 멀습니다. 이는 로그 오프를 수행하고 드라이버를 종료 할 수있는 후 시나리오에도 적용됩니다. 예를 들어 : 내 예에서
/**
* Before each scenario, initialise webDriver.
*/
@Before
public void beforeScenario() {
this.application.initialiseWebDriver();
}
/**
* After each scenario, quit the web driver.
*/
@After
public void afterScenario() {
this.log.trace("afterScenario");
this.application.quitBrowser();
}
, 나는 단순히 이전 시나리오에서 드라이버를 시작하고, 이후에 폐쇄,하지만 이론이 전후 방법이 무엇이든을 포함 할 수있어, 당신은 단지 필요 당신의 단계 정의 클래스에서 그들을 가지고 '@Before'와 '@After'태그로 주석을 달아라.
이 외에도 시나리오에 태그를 추가하여 호출 할 수있는 여러 개의 태그를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
/**
* Something to do after certain scenarios.
*/
@After("@doAfterMethod")
public void afterMethod() {
this.application.afterThing();
}
단계 정의에서 이와 같은 것을 설정할 수 있으며 표준으로 실행되지 않습니다. 그러나 '@doAfterMethod'로 시나리오에 태그를 지정할 수 있으며 태그가있는 시나리오에 대해 실행되므로 테스트가 끝날 때 필요한 모든 시나리오가 아니라 일반적인 시나리오에 적합합니다. 시나리오가 실행되기 전에 메소드를 실행하면 '@After'가 '@Before'로 변경됩니다.
이들을 사용하는 경우 전 및 후 글로벌 (이 예에서는 드라이버 초기화 및 종료)이 항상 실행되는 첫 번째이자 마지막 항목이며 그 사이의 다른 앞/뒤 부분과 함께 실행된다는 점에 유의하십시오 및 시나리오.
더 읽을 거리 : https://github.com/cucumber/cucumber/wiki/Hooks https://zsoltfabok.com/blog/2012/09/cucumber-jvm-hooks/
각 시나리오에 대한 드라이버를 열지 않고 닫는 방법을 찾고 있다면 - https://github.com/cucumber/cucumber-jvm/blob/master/examples/java-webbit-websockets-selenium/에서 살펴보십시오. src/test/java/cucumber/examples/java/websockets/SharedDriver.java – Grasshopper