在 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>
使用 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>