在Jenkins中使用插件生成Allure报告时无法计算绝对URL

时间:2016-09-08 09:23:27

标签: jenkins hudson allure

测试执行后无法在Jenkins中生成Allure报告。 在控制台输出中出现此类错误:

    > ERROR: Build step failed with exception
    > java.lang.IllegalStateException: Root URL isn't configured yet. Cannot
    > compute absolute URL. at
    > hudson.model.AbstractItem.getAbsoluteUrl(AbstractItem.java:483) at
    > ru.yandex.qatools.allure.jenkins.AllureReportPublisher.generateReport(AllureReportPublisher.java:169)
    > at
    > ru.yandex.qatools.allure.jenkins.AllureReportPublisher.perform(AllureReportPublisher.java:93)
    > at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    > at
    > hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    > at
    > hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
    > at
    > hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1047)
    > at
    > hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
    > at hudson.model.Run.execute(Run.java:1745) at
    > hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531) at
    > hudson.model.ResourceController.execute(ResourceController.java:98) at
    > hudson.model.Executor.run(Executor.java:410) Build step 'Allure
    > Report' marked build as failure Finished: FAILURE

在我的项目中,我使用TestNG,这是我的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>com.paycasso</groupId>
    <artifactId>test-app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <allure.version>1.4.11</allure.version>
        <aspectj.version>1.8.5</aspectj.version>
        <suite>smokeSuite</suite>
        <user>stg01</user>
        <pwd>verify10</pwd>
        <env>staging01</env>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-firefox-driver</artifactId>
            <version>2.53.0</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>3.4.1</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-testng-adaptor</artifactId>
            <version>${allure.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>${suite}.xml</suiteXmlFile>
                    </suiteXmlFiles>
                    <parallel>methods</parallel>
                    <threadCount>10</threadCount>
                    <testFailureIgnore>false</testFailureIgnore>
                    <argLine>
                        -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                    </argLine>
                    <systemPropertyVariables>
                        <user>${user}</user>
                        <password>${pwd}</password>
                        <environment>https://${env}-api.paycasso.com</environment>
                    </systemPropertyVariables>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.0</version>
            </plugin>
        </plugins>
    </reporting>

</project>

当我尝试使用mvn test命令从控制台生成报告时,一切正常。

请帮助澄清我错在哪里。

2 个答案:

答案 0 :(得分:1)

  1. 获取YourHostName:echo $HOSTNAME(在linux,mac中)

  2. Configure System -> Jenkins Location -> Jenkins URL设为http://YourHostName:8080

  3. 通过http://YourHostName:8080

  4. 打开Jenkins

答案 1 :(得分:1)

与Anna Kaygorodova相同但是:获取YourHostName:echo $ HOSTNAME(在linux,mac中)设置配置系统 - &gt; Jenkins位置 - &gt; Jenkins通过http://YourHostName:8080

打开Jenkins的http://YourServerIP:8080网址