SpringBoot Junit Maven JaCoCo


寫一下最近寫單體測試的一些筆記.

SrpingBoot的測試用例:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = {ApiApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

如果需要加其他配置, 可以使用SrpingBoot的Configuration, 來引入其他資源, 比如本次就引入了excel作為配置文件.

之所以選擇excel,是因為exce可以作為嵌入式數據庫來用,編輯數據方便靈活,沒有其他嵌入數據庫可以與之相比, 可以加入vba編程, 種種好處.本想用MongDB, 還是算了,高冷難用.

-------------

mvn 命令行啟動

mvn -Dtest=ApiTestSuit -DfailIfNoTests=false test
mvn test
mvn -Dtest=TestControllerTest#test -DfailIfNoTests=false test

 

啟動目錄在root pom所在目錄.-Dtest=xxxx的時候, 會去每個子pom所在項目的test中找xxxx的測試, 會報錯, 所以需要加上-DfailIfNoTests=false

 

-------------

https://blog.csdn.net/Joze_3/article/details/75402398

maven在build后會自動去Downloading 這個maven-metadata.xml文件,這個文件可以看作版本信息,作為一個版本比對。
但maven服務器在掛了之后,會一直卡在DOWNLOADING和retry。
解決方案: 本地的maven配置文件settings.xml

<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>xxxxx-maven-virtual</name>
        <url>xxxxxxx</url>
    </repository>
    <repository>
        <id>snapshots</id>
        <name>xxx-release-maven-virtual</name>
        <url>xxxxxxx</url>
        <snapshots>
            <enabled>true</enabled>
            <!-- always,never -->
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>xxx-release-maven-virtual</name>
        <url>xxxxxxxx</url>
    </pluginRepository>
    <pluginRepository>
        <id>snapshots</id>    
        <name>xxx-release-maven-virtual</name>
        <url>xxxxxx</url>
        <snapshots>
         <enabled>true</enabled>
            <!-- always,never -->
            <updatePolicy>never</updatePolicy>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

 

這篇講得挺好, 簡明扼要

https://www.cnblogs.com/liubaozhe/p/6929432.html

 

-----------------------------------------------------------------------

mvn 命令加上 -DskipTests #,不執行測試用例,但編譯測試用例類生成相應的class文件至target/test-classes下。
mvn 命令加上 -Dmaven.test.skip=true #,不執行測試用例,也不編譯測試用例類。
其中-D的意思是 -D,--define <arg> Define a system property

------------------------------------------

JaCoCo

 <plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.1</version>
    <executions>
        <execution>
            <id>prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
        <execution>
            <id>post-unit-test</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
            <configuration>
                <dataFile>target/jacoco.exec</dataFile>
            </configuration>
        </execution>
    </executions>
</plugin>

 

-------------------------------------------------------------

JaCoCo測試覆蓋率, IDEA

https://blog.csdn.net/lvyuan1234/article/details/82836052

 

JaCoCo插件集成進Jekins

https://blog.csdn.net/and1kaney/article/details/51214354

 

JaCoCo+Maven+Jenkins自動執行單元測試並生成代碼覆蓋率報告

https://blog.csdn.net/supermc123/article/details/78266109

 

復習一下Maven的生命周期

validate
generate-sources
process-sources
generate-resources
process-resources 復制並處理資源文件,至目標目錄,准備打包。
compile 編譯項目的源代碼。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 復制並處理資源文件,至目標測試目錄。
test-compile 編譯測試源代碼。
process-test-classes
test 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署。
prepare-package
package 接受編譯好的代碼,打包成可發布的格式,如 JAR 。
pre-integration-test
integration-test
post-integration-test
verify
install 將包安裝至本地倉庫,以讓其它項目依賴。
deploy 將最終的包復制到遠程的倉庫,以讓其它開發人員與項目共享。

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM