算卦网站哪里可以做,wordpress仓库,残联网站建设,精益生产管理咨询公司cargo maven开箱即用#xff0c;可以在Maven中进行单元测试。 因此#xff0c;它也经常用于集成测试。 这样做的主要缺点是集成测试可能需要花费更多的时间来执行#xff0c;并且因为没有人喜欢每次构建都要等待很长时间–只是使用-Dmaven.test.skiptrue标志跳过了测试 为了… cargo maven 开箱即用可以在Maven中进行单元测试。 因此它也经常用于集成测试。 这样做的主要缺点是集成测试可能需要花费更多的时间来执行并且因为没有人喜欢每次构建都要等待很长时间–只是使用-Dmaven.test.skiptrue标志跳过了测试 为了执行与Maven的集成测试我们应该使用Maven Failsafe插件 。 因此我们可以通过调用mvn test或使用mvn verify执行集成测试来快速运行单元测试。 集成测试应在尽可能与生产环境相似的环境中运行。 如果您的应用程序是WAR或EAR软件包则可以使用Maven Cargo插件来告诉Maven将其部署在应用程序服务器或servlet容器上并在已部署的应用程序上执行集成测试。 Maven故障安全插件配置 为了启用集成测试阶段必须将故障安全插件配置添加到pom.xml project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd...buildplugins...plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-failsafe-plugin/artifactIdversion2.12/versionexecutionsexecutiongoalsgoalintegration-test/goalgoalverify/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在整合后阶段处于停止状态 plugingroupIdorg.codehaus.cargo/groupIdartifactIdcargo-maven2-plugin/artifactIdversion1.2.0/versionconfigurationcontainercontainerIdtomcat7x/containerIdzipUrlInstallerurlhttp://archive.apache.org/dist/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip/urldownloadDir${project.build.directory}/downloads/downloadDirextractDir${project.build.directory}/extracts/extractDir/zipUrlInstaller/container/configurationexecutionsexecutionidstart-tomcat/idphasepre-integration-test/phasegoalsgoalstart/goal/goals/executionexecutionidstop-tomcat/idphasepost-integration-test/phasegoalsgoalstop/goal/goals/execution/executions
/plugin 效果很好。 现在当您第一次执行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);}
} 当然集成测试应该更复杂并且实际上要测试行为。 现在您可以设置WaitrSelenium或任何其他满足您最佳需求的解决方案并创建实际的集成测试。 结论 您是否总是应该在集成测试中测试已部署的应用程序 它非常有用但并非总是如此。 如果您的应用程序某种程度上取决于用户的IP地址则您将无法在不同的请求中对其进行更改。 但是如果您的应用程序是具有HTML或REST前端的经典Web应用程序则强烈建议使用。 参考 软件开发之旅博客上来自JCG合作伙伴 Maciej Walkowiak的Maven 3故障安全和Cargo插件的集成测试 。 翻译自: https://www.javacodegeeks.com/2013/12/integration-tests-with-maven-3-failsafe-and-cargo-plugin.htmlcargo maven