我正在研究“Cucucmber-Jvm(使用 Maven 项目)+ Selenium WebDriver PageObjects + Allure 报告”,我无法生成“Allure”报告。
以下是代码、功能文件、pom.xml 等...
Pom.xml:参考 POM 网址 - https://github.com/allure-framework/allure-cucumber-jvm-adaptor
<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>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<name>Allure Cucumber-JVM Adaptor</name>
<artifactId>allure-cucumber-jvm-adaptor</artifactId>
<groupId>ru.yandex.qatools.allure</groupId>
<version>1.4-SNAPSHOT</version>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>https://github.com/allure-framework/allure-cucumber-jvm-adaptor</url>
<connection>scm:git@github.com:allure-framework/allure-cucumber-jvm-adaptor.git</connection>
<developerConnection>scm:git:git@github.com:allure-framework/allure-cucumber-jvm-adaptor.git</developerConnection>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/allure-framework/allure-cucumber-jvm-adaptor/issues</url>
</issueManagement>
<ciManagement>
<system>TeamCity</system>
<url>http://teamcity.qatools.ru/</url>
</ciManagement>
<developers>
<developer>
<id>clicman</id>
<name>Viktor Sidochenko</name>
<email>viktor.sidochenko@gmail.com</email>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>Allure Mailing List</name>
<post>allure@yandex-team.ru</post>
</mailingList>
</mailingLists>
<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>
<compiler.version>1.7</compiler.version>
<allure.version>1.4.5</allure.version>
<aspectj.version>1.8.4</aspectj.version>
</properties>
<dependencies>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-core</artifactId>
<version>${allure.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-java-aspects</artifactId>
<version>${allure.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-commons</artifactId>
<version>${allure.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
<version>1.2.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.0</version>
<type>jar</type>
</dependency>
<!-- <dependency>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>9</version>
</dependency> -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>gherkin</artifactId>
<version>2.12.2</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.5</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<!-- parallel execution configuration -->
<parallel>classes</parallel>
<threadCount>8</threadCount>
<includes>
<include>**/*Test.java</include>
</includes>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
</argLine>
<properties>
<property>
<name>listener</name>
<value>ru.yandex.qatools.allure.cucumberjvm.AllureRunListener</value>
</property>
</properties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
功能文件位置: src/test/resources功能文件名称: OpenAndclose.feature
Feature: OpenAndClose
Scenario: OpenAndClose Browser
Given user opened firefox browser
Then user entered url
Then user closed firefox browser
代码位于: src/test/java
TestRunner class:
package openANDclose;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(dryRun=false, monochrome = true, features= "src/test/resources/OpenAndclose.feature")
public class OpenAndClose_TestRunner {
}
步骤定义:
package openANDclose;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
public class OpenAndClose_StepDefinitions {
public static WebDriver driver;
@Given("^user opened firefox browser$")
public void user_opened_firefox_browser() throws Throwable {
driver=new FirefoxDriver();
}
@Then("^user entered url$")
public void user_entered_url() throws Throwable {
OpenAndClose_PageObjects.user_opened_firefox_browser(driver);
}
@Then("^user closed firefox browser$")
public void user_closed_firefox_browser() throws Throwable {
OpenAndClose_PageObjects.user_closed_firefox_browser(driver);
}
}
页面对象类:
package openANDclose;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class OpenAndClose_PageObjects {
public static WebDriver driver ;
public static WebElement element=null;
public static WebElement user_opened_firefox_browser(WebDriver driver) {
driver.get("http://google.co.in");
return element;
}
public static WebElement user_closed_firefox_browser(WebDriver driver) {
driver.quit();
return element;
}
}
从命令提示符运行“Allure”报告后,得到以下错误消息和错误报告。
以下报告来自:错误消息下方的“mvn clean test”正在显示。
D:\Cucumber_JVM_WorkSpace\Cucumber_Allure>mvn clean test
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 1 modules...
[INFO] Installing Nexus Staging features:
[INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-st
aging-maven-plugin
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Allure Cucumber-JVM Adaptor 1.4-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ allure-cucumber-jvm-ad
aptor ---
[INFO] Deleting D:\Cucumber_JVM_WorkSpace\Cucumber_Allure\target
[INFO]
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ allure-cucumber-j
vm-adaptor ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ allure-cuc
umber-jvm-adaptor ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\Cucumber_JVM_WorkSpace\Cucumber_Al
lure\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ allure-cucumber
-jvm-adaptor ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ al
lure-cucumber-jvm-adaptor ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.2:testCompile (default-testCompile) @ allure-
cucumber-jvm-adaptor ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to D:\Cucumber_JVM_WorkSpace\Cucumber_Allure\tar
get\test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_StepDefinitions.java:[3,27] package org.openqa.selenium does not exis
t
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_StepDefinitions.java:[4,35] package org.openqa.selenium.firefox does
not exist
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_StepDefinitions.java:[11,23] cannot find symbol
symbol: class WebDriver
location: class openANDclose.OpenAndClose_StepDefinitions
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[3,27] package org.openqa.selenium does not exist
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[4,27] package org.openqa.selenium does not exist
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[7,23] cannot find symbol
symbol: class WebDriver
location: class openANDclose.OpenAndClose_PageObjects
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[9,23] cannot find symbol
symbol: class WebElement
location: class openANDclose.OpenAndClose_PageObjects
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[11,62] cannot find symbol
symbol: class WebDriver
location: class openANDclose.OpenAndClose_PageObjects
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[11,23] cannot find symbol
symbol: class WebElement
location: class openANDclose.OpenAndClose_PageObjects
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[16,62] cannot find symbol
symbol: class WebDriver
location: class openANDclose.OpenAndClose_PageObjects
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_PageObjects.java:[16,23] cannot find symbol
symbol: class WebElement
location: class openANDclose.OpenAndClose_PageObjects
[ERROR] /D:/Cucumber_JVM_WorkSpace/Cucumber_Allure/src/test/java/openANDclose/Op
enAndClose_StepDefinitions.java:[15,36] cannot find symbol
symbol: class FirefoxDriver
location: class openANDclose.OpenAndClose_StepDefinitions
[INFO] 12 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.287 s
[INFO] Finished at: 2015-05-02T15:01:37+05:30
[INFO] Final Memory: 13M/33M
[INFO] ------------------------------------------------------------------------
以下报告来自:mvn 网站
About Allure Cucumber-JVM Adaptor
Sonatype helps open source projects to set up Maven repositories on https://oss.sonatype.org/