• Maven跳过测试


    Maven跳过测试

    参考

    http://maven.apache.org/plugins/maven-resources-plugin/testResources-mojo.html

    http://maven.apache.org/plugins/maven-compiler-plugin/testCompile-mojo.html

    http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html

    boolean - Set this to "true" to bypass unit tests entirely. Its use is NOT RECOMMENDED, especially if you enable it using the "maven.test.skip" property, because maven.test.skip disables both running the tests and compiling the tests. Consider using the skipTests parameter instead. Default value is: false. User property is: maven.test.skip.
    boolean 2.4 Set this to "true" to skip running tests, but still compile them. Its use is NOT RECOMMENDED, but quite convenient on occasion. Failsafe plugin deprecated the parameter skipTests and the parameter will be removed in Failsafe 3.0.0 as it is a source of conflicts between Failsafe and Surefire plugin. Default value is: false. User property is: skipTests.

    环境

    E:mozqdemo_projectshiro>mvn -v
    Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
    Maven home: D:	oolsmavenapache-maven-3.6.1in..
    Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: D:	oolsjdkjre
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
    

    案例一 跳过运行测试和编译测试

    配置

    <maven.test.skip>true</maven.test.skip> 跳过运行测试,测试资源,测试代码编译

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
    <!-- 
        这个属性被3个插件使用,跳过testResources,testCompile,test。不处理测试,会快一点。
        maven-resources-plugin:3.1.0:testResources
        maven-compiler-plugin:3.8.1:testCompile
        maven-surefire-plugin:2.22.2:test
     -->
        <maven.test.skip>true</maven.test.skip>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    

    运行结果

    [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ http_01 ---
    [INFO] Not copying test resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ http_01 ---
    [INFO] Not compiling test sources
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ http_01 ---
    [INFO] Tests are skipped.
    

    案例二 只跳过运行测试

    配置

    <skipTests>true</skipTests> 只跳过运行测试,不跳过测试资源和测试代码编译。

    <properties>
        <skipTests>true</skipTests>
        <!--<maven.test.skip>true</maven.test.skip>-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>6</maven.compiler.source>
        <maven.compiler.target>6</maven.compiler.target>
        <spring.version>4.3.2.RELEASE</spring.version>
        <mybatis.version>3.2.6</mybatis.version>
    </properties>
    
    <build>
        <!-- 资源文件 -->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
    
    
        <!-- 插件jetty tomcat -->
        <plugins>
            <!-- 配置jetty运行方式 -->
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.3.0.M2</version>
                <configuration>
                    <webAppConfig>
                        <contextPath>/xinhekqsys</contextPath>
                    </webAppConfig>
                    <httpConnector>
                        <port>8081</port>
                        <idleTimeout>10000</idleTimeout>
                    </httpConnector>
                </configuration>
            </plugin>
    
            <!-- maven项目在tomcat下运行的配制文件 -->
            <!-- 配置tomcat运行方式 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <!-- 注意tomcat7此处的url -->
                    <url>http://localhost:8080/manager/text</url>
                    <!-- 此处的名字必须和setting.xml中配置的ID一致 -->
                    <server>tomcat</server>
                    <!-- 此处的名字是项目发布的工程名 -->
                    <path>/xinhekqsys</path>
                </configuration>
            </plugin>
            <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> 
        <version>2.4</version> <configuration> <webResources> <resource> <directory>src/main/webapp/WEB-INF</directory> 
        </resource> </webResources> </configuration> </plugin> -->
    
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> 
        <version>2.4</version> <configuration> <webResources> <resource> <directory>src/main/webapp/WEB-INF</directory> 
        <directory>src/main/webapp</directory> </resource> </webResources> </configuration> 
        </plugin> -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <compilerArguments>
                        <verbose /> <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
                    </compilerArguments>
                </configuration>
            </plugin>
    
        </plugins>
        <!-- 最终项目打包包名 -->
        <finalName>handordering</finalName>
    </build>
    

    运行结果

    <skipTests>true</skipTests>
    # 没有跳过测试资源 
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ handordering ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory E:mozq2 projecthandorderingsrc	est
    esources
    [INFO] 
    # 没有跳过测试代码编译
    [INFO] --- maven-compiler-plugin:3.6.0:testCompile (default-testCompile) @ handordering ---
    [INFO] No sources to compile
    [INFO] 
    # 跳过了运行测试
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ handordering ---
    [INFO] Tests are skipped.
    
    <maven.test.skip>true</maven.test.skip>
    # 跳过了测试资源 
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ handordering ---
    [INFO] Not copying test resources
    [INFO] 
    # 跳过了测试代码编译
    [INFO] --- maven-compiler-plugin:3.6.0:testCompile (default-testCompile) @ handordering ---
    [INFO] Not compiling test sources
    [INFO] No sources to compile
    [INFO] 
    # 跳过了运行测试
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ handordering ---
    [INFO] Tests are skipped.
    

    案例三 插件中配置跳过

    插件和用户属性中同时对是否跳过测试进行配置,会以插件中为准。但是当跳过了测试资源和测试代码编译,又设置不跳过运行测试没有意义,因为此时不会生成测试代码。

    配置

    <properties>
        <!-- 配置了跳过测试用户属性 -->
        <maven.test.skip>true</maven.test.skip>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <!-- 插件中配置不跳过运行测试,以插件中配置为准。
    				当跳过了测试资源和测试代码编译,又设置不跳过运行测试没有意义,因为此时不会有测试代码来运行。
    			-->
                <configuration>
                    <skip>false</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    运行结果

    # 跳过了测试资源
    [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ http_01 ---
    [INFO] Not copying test resources
    # 跳过了测试代码编译
    [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ http_01 ---
    [INFO] Not compiling test sources
    # 没有跳过运行测试,但是因为没有编译的测试代码,打印了没有测试需要运行。
    [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ http_01 ---
    [INFO] No tests to run.
    
  • 相关阅读:
    python base64.b64decode 等号可以随便加
    MySQL 5.7 数据库的忘记 root 登录密码处理
    霸州录——第一章 名存实亡(下)
    三 工具虽微小 入门不可少
    霸州录——第一章 名存实亡(中)
    霸州录——第一章 名存实亡(上)
    一 欲行网络道,入乡须随俗
    霸州录——楔子
    【第一章】编译原理基础
    TensorFlow
  • 原文地址:https://www.cnblogs.com/mozq/p/12028198.html
Copyright © 2020-2023  润新知