簡體   English   中英

如何避免在每次測試之前執行注釋?

[英]How can I avoid annotations executing before every test?

對於本網站上的任何格式問題或任何其他與禮節有關的問題,我們深表歉意,這是我在潛伏了過去幾個月后的第一篇文章,而我正在使用的一切對我來說都是新的。

我最近開始用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文件,其中包含諸如tearDownsetUp的方法。

我遇到的問題是,每次執行測試時,都會打開四個瀏覽器會話,而不是所需的單個瀏覽器。 我知道這是因為@Before和@After批注在每個測試之前執行,而不是在整個套件之前執行。 我認為最好的解決方案是使用@Before和@After輸入新文件,但這是我似乎無法弄清楚的部分。 在每個文件中, script都是不同的,我認為這是問題的根源,但我不確定。

有誰知道我可以重組測試的方式,使它們都共享相同的@Before和@After方法,而不會導致多個瀏覽器會話打開? 先感謝您

問題並不是真正的前后,而是您管理WebDriver實例的方式。 通常,您需要在諸如singleton之類的內部維護它的單個實例。 您可以通過經典的Signleton模式執行此操作,也可以通過注入進行操作。

我強烈建議您查看The Cucumber for Java Book 它並不能解決您將面臨的所有挑戰,但是當您使用Java時,這對於Cucumber是一本好書。 第12章討論的是在Cucumber中使用WebDriver,並討論如何使用注入重用瀏覽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM