寫一下最近寫單體測試的一些筆記.
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