對於任何格式問題或任何違反本網站禮儀的道歉行爲,這是我潛伏了過去幾個月後的第一篇文章,我正在使用的所有內容對我而言都很新穎。如何避免在每次測試之前執行註釋?
我最近開始在Java/Cucumber/JUnit中編寫一些硒測試,並且遇到了一個問題,我無法解決問題。我知道問題是什麼,但無法弄清楚如何改變我的測試來補救它。下面是一些背景資料的:
特徵文件例如:
Feature: Form Submission functionality
@Run
Scenario: Submitting the demo form with correct details is succesful
Given I am on the demo page
When I submit the demo form with valid information
Then the thank you page is displayed
StepDefs文件的例子(我有四個文件這樣,測試站點的不同部分):
package testFiles.stepDefinitions;
import testFiles.testClasses.formSubmissionFunctionalityTest;
import cucumber.api.java.en.*;
import cucumber.api.java.After;
import cucumber.api.java.Before;
public class formSubmissionFunctionalityStepDefs {
private formSubmissionFunctionalityTest script = new formSubmissionFunctionalityTest();
@Before
public void setUpWebDriver() throws Exception {
script.setUp();
}
@Given("^I am on the demo page$")
public void i_am_on_the_demo_page() throws Throwable {
script.goToDemoPage();
}
@When("^I submit the demo form with valid information$")
public void i_submit_the_demo_form_with_valid_information() throws Throwable {
script.fillSubmitDemoForm();
}
@Then("^the thank you page is displayed$")
public void the_thank_you_page_is_displayed() throws Throwable {
script.checkThankYouPageTitle();
}
@After
public void tidyUp() {
script.tearDown();
}
}
我那麼也有一個formSubmissionFunctionalityTest.java文件,它包含所有的方法的實際代碼,如fillSubmitDemoFrom
。我也有一個setupTest.java文件,其中有tearDown
和setUp
之類的方法。
我遇到的問題是每次執行測試時,都會打開4個瀏覽器會話而不是所需的單個瀏覽器。我知道這是因爲@Before和@After註釋在每次測試之前執行,而不是在整個套件之前執行。我認爲最好的解決方案是使用@Before和@After之後創建一個新文件,但這是我無法想象的部分。在每個文件中,script
是不同的,這是我認爲問題來自哪裏,但我不完全確定。
有誰知道一種方式我可以重構我的測試,以便他們都共享相同的@Before和@After方法,而不會導致多個瀏覽器會話打開?提前謝謝你
這是你的意思嗎? http://stackoverflow.com/questions/18856458/execute-cucumber-step-before-after-a-specific-feature –
謝謝,但不是真的我以後。我想我正在尋找的解決方案將涉及使用'@ Before'和'@ After'註釋,但要設置不同的類以允許所有測試使用一組註釋,而不是在每個測試類中都有它們,從而導致多重瀏覽器在測試運行時打開 –