在maven中执行集成测试时出现异常

时间:2015-02-17 19:49:29

标签: java maven maven-profiles maven-resources-plugin

使用mvn verify对我的webapp执行集成测试时获取以下异常。集成测试只是使用HtmlUnit加载服务器URL并检查状态代码200.不确定我在这里缺少什么。看起来资源过滤在这里没有按预期工作。请指导。

错误日志:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.study.jenkins.it.htmlunit.PageIT
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.951 sec <<< FAILURE! - in com.study.jenkins.it.htmlunit.PageIT
testScenario(com.study.jenkins.it.htmlunit.PageIT)  Time elapsed: 0.949 sec  <<< ERROR!
java.net.MalformedURLException: no protocol: ${server.url}
        at java.net.URL.<init>(URL.java:585)
        at java.net.URL.<init>(URL.java:482)
        at java.net.URL.<init>(URL.java:431)
        at com.gargoylesoftware.htmlunit.util.URLCreator.toNormalUrl(URLCreator.java:36)
        at com.gargoylesoftware.htmlunit.util.URLCreator$URLCreatorStandard.toUrlUnsafeClassic(URLCreator.java:82)
        at com.gargoylesoftware.htmlunit.util.UrlUtils.toUrlUnsafe(UrlUtils.java:195)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:359)
        at com.study.jenkins.it.htmlunit.PageIT.testScenario(PageIT.java:12)

Running com.study.jenkins.it.selenium.PageIT

的pom.xml

<properties>
    <dev.tc.base.url>http://dev-server.com</dev.tc.base.url>
    <tst.tc.base.url>http://tst-server.com</tst.tc.base.url>
</properties>

<build>
    <finalName>${project.artifactId}</finalName>
    <resources>
        <resource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <server.url>${dev.tc.base.url}/cicd-demo/</server.url>
        </properties>
    </profile>
    <profile>
        <id>tst</id>
        <properties>
            <server.url>${tst.tc.base.url}/cicd-demo/</server.url>
        </properties>
    </profile>
</profiles>

的src /测试/资源/ url.properties

server.url=${server.url}

1 个答案:

答案 0 :(得分:0)

找到了测试资源过滤问题的解决方案。

替换

 <resources>
        <resource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

<testResources>
    <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
    </testResource>
</testResources>