2015-02-17 2 views
0

Получение исключения при выполнении интеграционных тестов с использованием mvn verify против моего webapp. Интеграционные тесты просто загружают URL-адрес сервера с помощью HtmlUnit и проверяют код состояния 200. Не уверен, что я здесь отсутствует. Похоже, что фильтрация ресурсов не работает должным образом. Пожалуйста, направляйте.Исключение при выполнении интеграционных тестов в maven

журнал регистрации ошибок:

------------------------------------------------------- 
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} 
+0

не эксперт Maven. Но из-за внешнего вида трассировки стека он не может заменить значение $ {server.url} URL-адресом вашего сервера dev или tst. – Vin

+0

Почему вы ожидаете, что maven просто заменит ключи в файле свойств на его значение из системного параметра –

+0

Я пытаюсь запустить интеграционные тесты для разных env. Стоит упомянуть то, что я, когда я перемещаю url.properties и xpath.properties в src/main/resources и удаляю элемент в src/main/resources, все начинает работать как ожидалось. – user2325154

ответ

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>