最近引入Allure框架時遇到了一個奇葩的問題,在此記錄下:
問題描述:
在本地上跑腳本后生成的allure report可以正常的顯示test body項以及attachment截圖項干花,但是構(gòu)建到Jenkins卻丟失test body項
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">
<!--聲明項目描述符遵循哪一個POM模型版本。模型本身的版本很少改變灸蟆,雖然如此曼验,但它仍然是必不可少的卡骂,這是為了當(dāng)Maven引入了新的特性或者其他模型變更的時候,確保穩(wěn)定性煮甥。-->
<modelVersion>4.0.0</modelVersion>
<!--項目的全球唯一標(biāo)識符盗温,通常使用全限定的包名區(qū)分該項目和其他項目。并且構(gòu)建時生成的路徑也是由此生成成肘, 如com.mycompany.app生成的相對路徑為:/com/mycompany/app-->
<groupId>com.test.test</groupId>
<!-- 構(gòu)件的標(biāo)識符卖局,它和group ID一起唯一標(biāo)識一個構(gòu)件。換句話說双霍,你不能有兩個不同的項目擁有同樣的artifact ID和groupID砚偶;在某個 特定的group ID下,artifact ID也必須是唯一的洒闸。構(gòu)件是項目產(chǎn)生的或使用的一個東西染坯,Maven為項目產(chǎn)生的構(gòu)件包括:JARs,源 碼丘逸,二進制發(fā)布和WARs等单鹿。-->
<artifactId>test</artifactId>
<!--項目當(dāng)前版本,格式為:主版本.次版本.增量版本-限定版本號-->
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<xmlFileName>${xmlFileName}</xmlFileName>
<aspectj.version>1.8.10</aspectj.version>
</properties>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.41.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.41.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.10</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
<scope>test</scope>
</dependency>
<!--<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.5</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/reportng-1.1.5.jar</systemPath>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-testng-adaptor</artifactId>
<version>1.5.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-java-annotations</artifactId>
<version>1.5.4</version>
<scope>compile</scope>
</dependency>
-->
<!-- <dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-java-commons</artifactId>
<version>2.12.1</version>
</dependency>
-->
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.0-BETA21</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-java-commons</artifactId>
<version>2.12.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<suiteXmlFiles>
<!--代表的是要執(zhí)行的測試套件名稱-->
<suiteXmlFile>src/test/resources/${xmlFileName}</suiteXmlFile>
</suiteXmlFiles>
<!--設(shè)置參數(shù)命令行-->
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<!--測試失敗后深纲,是否忽略并繼續(xù)測試-->
<argLine>
-Dfile.encoding=UTF-8
</argLine>
<workingDirectory>.</workingDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
本地運行的截圖如下:
image.png
Jenkins上運行截圖如下:(缺少test body項)
image.png
問題解決:
去掉pom設(shè)置中的-Dfile.encoding=UTF-8項
image.png
問題原因:
目前尚未找到原因