如何解决TestRunner初始化错误
我是黄瓜/黄瓜BDD的新手。我一直在尝试使用Maven,TestNG和Cucumber创建一个框架。我创建了功能文件StepDefinitiions和TestRunner。运行功能文件时,我的方案已成功执行。但是,当我尝试使用'TestRunner'运行时,出现 InitialisationError 的问题,我相信我已经在Maven-POM.xml中添加了所有必需的依赖项
我正在附上错误的屏幕截图: TestRunnerInitialisationError
我附上了其他信息
项目结构 Project Structure
POM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>auto</groupId>
<artifactId>AAFramework</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>AAFramework</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<resources>
<resource>
<directory>src/main/java/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/gherkin -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>gherkin</artifactId>
<version>15.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
<scope>test</scope>
</dependency>
<!-- Log4j dependencies: https://logging.apache.org/log4j/2.x/maven-artifacts.html#Using_Log4j_in_your_Apache_Maven_build -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>
<!-- For Screenshots: https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>5.0.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>6.6.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-testng -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>6.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
Testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel = "tests">
<listeners>
<listener class-name="aaframework.Listeners"/>
</listeners>
<test name="AmazonHomeLins">
<classes>
<class name="cucumberOptions.TestRunner"/>
</classes>
</test>
</suite> <!-- Suite -->
功能文件
Feature: Verify Amazon India homne page header links are working and redirected to respective pages
Scenario: Mobile link is working on Amazon home page
Given I am on Amazon India home page
When I click on Mobiles link
Then I am redirected to Mobiles web page
Scenario: Best Sellers link is working on Amazon home page
Given I am on Amazon India home page
When I click on 'BestSellers' link
Then I am redirected to Best Sellers web page
步骤定义
package stepDefs;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.testng.Assert;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import pageObject.HomePagePF;
import resources.Base;
public class AmazonHome extends Base{
public WebDriver driver;
HomePagePF hp;
@Given("I am on Amazon India home page")
public void i_am_on_amazon_india_home_page() throws IOException {
// Write code here that turns the phrase above into concrete actions
driver = initialiseBrowser();
driver.get(prop.getProperty("url"));
}
@When("I click on Mobiles link")
public void i_click_on_mobiles_link() {
// Write code here that turns the phrase above into concrete actions
hp = new HomePagePF(driver);
hp.getMobiles().click();
}
@Then("I am redirected to Mobiles web page")
public void i_am_redirected_to_mobiles_web_page() throws InterruptedException {
// Write code here that turns the phrase above into concrete actions
Thread.sleep(2000);
String actualMobile = driver.getTitle();
// System.out.println(actualMobile);
String expectedMobile = "Mobile Phones: Buy New Mobiles Online at Best Prices in India | Buy Cell Phones Online - Amazon.in";
Assert.assertEquals(actualMobile,expectedMobile);
driver.close();
}
@When("^I click on 'BestSellers' link$")
public void i_click_on_bestsellers_link() throws Throwable {
hp = new HomePagePF(driver);
hp.getBestSellersLink().click();
}
@Then("^I am redirected to Best Sellers web page$")
public void i_am_redirected_to_best_sellers_web_page() throws Throwable {
Thread.sleep(2000);
String actualTitle = driver.getTitle();
// System.out.println(actualTitle);
String expectedTitle = "Amazon.in Bestsellers: The most popular items on Amazon";
Assert.assertEquals(actualTitle,expectedTitle);
driver.close();
}
}
TestRunner
package cucumberOptions;
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(features = "/src/test/java/features",glue= {"src/test/java/stepDefs"})
public class TestRunner {
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。