无法使用testng运行黄瓜功能中的第二个场景

时间:2017-10-25 10:16:39

标签: selenium-webdriver cucumber testng

我用黄瓜作为BDD创建了maven项目,并将其与testng集成。我在我的功能文件中添加了2个方案。我已经在我的testng.xml中配置了runner类,在我的跑步者类中,我正在使用@BeforeClass启动浏览器。测试成功运行第一个方案但不运行第二个方案。请指导如何继续这样做。

我在功能文件中的方案是:

Feature: Base PartyUserStories

  Scenario: Verify login
    Given the username and password
     When login is clicked 
     Then you enter the login page 

  Scenario: Verify login and blah blah 
    Given the username and password
     When login is clicked 
     Then you enter the login page 

My Runner类是我调用浏览器的地方:

@CucumberOptions(features = { "src/test/resources" }, glue = { "com.cucumber.testng.party.tests" })
public class TestRunner extends AbstractTestNGCucumberTests {
    public static WebDriver driver;

    @BeforeTest
    public void run() {
        System.out.println("Runs always ");
    }

    @BeforeMethod(alwaysRun = true)
    public void geturl() {
        driver = new FirefoxDriver();
        driver.get("https:test.aspx");      
    }        

    @AfterMethod(alwaysRun = true)
    public void quiturl() {        
        driver.quit();
    }

    @AfterTest        
    public void stoprun() {        
        System.out.println("Runs after every test");
    }      
}

这是我的testng.xml:

<?xml version="1.0"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Party" parallel="none">
    <test name="Base Party Validation">
        <classes>
            <class name="com.cucumber.testng.runner.TestRunner"/>
        </classes>
    </test>
</suite>

它成功运行第一个场景,第二个场景它不启动浏览器。请帮我解决一下这个 。

2 个答案:

答案 0 :(得分:0)

使用在每个场景之前运行的@Before @After挂钩 要实现这一点,因为您有一个功能文件和多个场景。

答案 1 :(得分:0)

您可以尝试使用qaf bddqaf gherkin来完成框架下的驱动程序管理和配置管理。如果您不熟悉自动化,可以浏览qaf-step-by-step-tutorial