黄瓜步骤定义文件未运行,TestNG批注工作正常

我开始编写示例黄瓜测试代码,并且遇到步骤定义文件未运行的问题。甚至我的自动浏览器也无法启动。 这是我的项目层次结构屏幕快照:https://prnt.sc/psasmt

下面是我的5个文件:

  Feature: Apple Airpods

  Scenario Outline: Apple Airpods scenario tests

  Given user is already on apple website
  Then direct to ipad
  When title is iPad - Apple
  Then direct to ipad air
  Then search for airpods by keyword
  When title is Airpods - Apple
  Then print welcome to the airpods official webpage

StepDefinition文件

    package stepDefinitions;

    import java.util.concurrent.TimeUnit;

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.Assert;

    import cucumber.api.java.en.Given;
    import cucumber.api.java.en.Then;
    import cucumber.api.java.en.When;


    public class AppleStepDefinitions {

        WebDriver driver;

        @Given("^user is already on apple website$")
        public void user_is_already_on_apple_website()
        {
            System.out.println("Opening the web app");
            System.setProperty("webdriver.chrome.driver","C:\\Users\\Lenovo- 
            I7\\Desktop\\chromedriver.exe");
            System.out.println("making connection to driver");
            driver = new ChromeDriver();
            driver.get("https://www.apple.com/");   
        }


        @Then("^direct to ipad$")
        public void direct_to_ipad()
        {
            WebElement ipad = driver.findElement(By.xpath("//*[@id=\'ac- 
             globalnav\']/div/ul[2]/li[3]"));
            ipad.click();
            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
        }

        @When("^title is iPad - Apple$")
        public void title_is_iPad_Apple()
        {
             String title = driver.getTitle();
             System.out.println("iPad Page title ::"+ title);
             Assert.assertEquals("iPad - Apple",title);
        }

        @Then("^direct to ipad air$")
        public void direct_to_ipad_air()
        {
            WebElement ipadAir= 
        driver.findElement(By.cssSelector("#chapternav > div > ul > 
        li.chapternav-item.chapternav-item-ipad-air > a"));
            ipadAir.click();
            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);        
        }

        @Then("^search for airpods by keyword$")
        public void search_for_airpods_by_keyword()
        {
            WebElement search = driver.findElement(By.id("ac-gn-link- 
         search"));
            search.click();
            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);    

            driver.findElement(By.id("ac-gn-searchform- 
            input")).sendKeys("airpods");
            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

            driver.findElement(By.xpath("//* 
         [@id=\"quicklinks\"]/li[1]/a")).click();
            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
        }

        @When("^title is Airpods - Apple$")
        public void title_is_Airpods_Apple()
        {
             String title = driver.getTitle();
             System.out.println("Airpods Page title ::"+ title);
             Assert.assertEquals("Airpods - Apple",title);
        }

        @Then("^print welcome to the airpodsofficial webpage$") 
        public void print_message()
        {
            System.out.println("Welcome to airpod official web page");
            driver.quit();
        }


    }

Runner.java

    package testRunner;

    import org.testng.annotations.AfterClass;
    import org.testng.annotations.Beforeclass;
    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;

    import cucumber.api.CucumberOptions;
    import cucumber.api.testng.CucumberFeatureWrapper;
    import cucumber.api.testng.TestNGCucumberRunner;

    @CucumberOptions(
        features = "src/test/java/FeatureFile",glue = {"stepDefinitions"},tags = {"~@Ignore"},format = {
                        "pretty","html:target/cucumber-reports/cucumber-pretty","json:target/cucumber-reports/CucumberTestReport.json","rerun:target/cucumber-reports/rerun.txt"
                },plugin = "json:target/cucumber-reports/CucumberTestReport.json")


    public class Runner {


        private TestNGCucumberRunner testNGCucumberRunner;

        @Beforeclass
        public void setUp() throws Exception
        {
            testNGCucumberRunner = new TestNGCucumberRunner(this.getclass());
        }


        @Test(groups = "cucumber",description="Runs Apple Feature",dataProvider="features")
          public void my_test(CucumberFeatureWrapper cucumberFeature) 
        {
            testNGCucumberRunner.runCucumber(cucumberFeature.getcucumberFeature());
        }


        @DataProvider
        public Object[][] features()
        {
            return testNGCucumberRunner.provideFeatures();      
        }


        @AfterClass
        public void tearDown()
        {
            testNGCucumberRunner.finish();  
        }




    }

TestNG.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="TestNG-Cucumber Suite" parallel="tests" thread-count="10">
    <test name="Apple test">
        <classes>
            <class name="testRunner.Runner" />
        </classes>
    </test>
</suite>

这是我在控制台上得到的输出。

    [RemoteTestNG] detected TestNG version 6.14.3
    Feature: Apple Airpods

      Scenario Outline: Apple Airpods scenario tests       [90m# apple_feature.feature:3[0m
        [36mGiven [0m[36muser is already on apple website[0m
        [36mThen [0m[36mdirect to ipad[0m
        [36mWhen [0m[36mtitle is iPad - Apple[0m
        [36mThen [0m[36mdirect to ipad air[0m
        [36mThen [0m[36msearch for airpods by keyword[0m
        [36mWhen [0m[36mtitle is Airpods - Apple[0m
        [36mThen [0m[36mprint welcome to the airpods official webpage[0m

    0 Scenarios
    0 Steps
    0m0.000s


    ===============================================
    TestNG-Cucumber Suite
    Total tests run: 1,Failures: 0,Skips: 0
    ===============================================
wyq8965 回答:黄瓜步骤定义文件未运行,TestNG批注工作正常

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3159067.html

大家都在问