cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试
cargo maven
開箱即用,可以在Maven中進行單元測試。 因此,它也經常用于集成測試。 這樣做的主要缺點是集成測試可能需要花費更多的時間來執行,并且因為沒有人喜歡每次構建都要等待很長時間–只是使用-Dmaven.test.skip=true標志跳過了測試
為了執行與Maven的集成測試,我們應該使用Maven Failsafe插件 。 因此,我們可以通過調用mvn test或使用mvn verify執行集成測試來快速運行單元測試。
集成測試應在盡可能與生產環境相似的環境中運行。 如果您的應用程序是WAR或EAR軟件包,則可以使用Maven Cargo插件來告訴Maven將其部署在應用程序服務器或servlet容器上,并在已部署的應用程序上執行集成測試。
Maven故障安全插件配置
為了啟用集成測試階段,必須將故障安全插件配置添加到pom.xml
<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">...<build><plugins>...<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-failsafe-plugin</artifactId><version>2.12</version><executions><execution><goals><goal>integration-test</goal><goal>verify</goal></goals></execution></executions></plugin></plugins></build>... </project>現在,當調用mvn verify時,包含測試匹配的所有文件src/test/java/**/*IT.java將在集成測試階段執行。
集成測試不過是使用JUnit或TestNG批注的類來告訴Maven哪種方法是測試,并且應該使用與單元測試相同的方式來聲明。
Maven Cargo插件配置
Cargo插件支持市場上所有主要的應用服務器 。 在我的示例中,我將使用默認的Apache Tomcat 7安裝。
- Tomcat正在集成前階段啟動
- tomcat在整合后階段處于停止狀態
效果很好。 現在,當您第一次執行mvn verify時,您可以看到在集成測試運行之前正在下載并啟動Tomcat。
集成測試類示例
現在,我們終于可以編寫有用的集成測試了–將檢查應用程序是否發送正確的錯誤代碼作為響應。
import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.junit.Test;import java.io.IOException;import static org.fest.assertions.Assertions.assertThat;public class CheckApplicationDeployIT {private static final String URL = "http://localhost:8080/myApp/testURL";@Testpublic void testIfAppIsUp() throws IOException {//givenHttpClient client = new DefaultHttpClient();HttpGet httpget = new HttpGet(URL);//whenHttpResponse response = client.execute(httpget);//thenassertThat(response.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK);} }當然,集成測試應該更復雜,并且實際上要測試行為。 現在,您可以設置Waitr,Selenium或任何其他滿足您最佳需求的解決方案,并創建實際的集成測試。
結論
您是否總是應該在集成測試中測試已部署的應用程序? 它非常有用,但并非總是如此。 如果您的應用程序某種程度上取決于用戶的IP地址,則您將無法在不同的請求中對其進行更改。
但是,如果您的應用程序是具有HTML或REST前端的經典Web應用程序,則強烈建議使用。
翻譯自: https://www.javacodegeeks.com/2013/12/integration-tests-with-maven-3-failsafe-and-cargo-plugin.html
cargo maven
總結
以上是生活随笔為你收集整理的cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 朋友圈如何设置三天可见
- 下一篇: APIGEE – API网关简介