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

Exception while executing integration tests in maven

使用 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/test/resources/url.属性

server.url=${server.url}

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

已替换

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

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