-
問題說明: JUnit 測試在構建期間無法運行。 Maven 可能找不到要運行的 JUnit 測試有多種原因。 執行
mvn clean install時會無法抓到要測試的項目 -
解決辦法
-
命名問題
-
依照 Surefire plugin 規範如下
**/Test*.java:包括其所有子目錄和所有Test開頭的 Java 文件名**/*Test.java:包括其所有子目錄和所有Test結尾的 Java 文件名**/*Tests.java:包括其所有子目錄和所有Tests結尾的 Java 文件名**/*TestCase.java:包括其所有子目錄和所有TestCase結尾的 Java 文件名
-
也可以客製化設定
-
Example
<configuration>元素是用來設定 Maven Surefire Plugin 的運行時配置<include>元素指定了要包含在測試中的所有*Test.java 類<exclude>元素指定了要排除的測試類,例如 Cucumber 和步驟類
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M7</version> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.2</version> </dependency> </dependencies> <configuration> <includes> <include>**/*Test.java</include> </includes> <excludes> <exclude>com/flame/stockor/cucumber/**</exclude> <exclude>com/flame/stockor/steps/**</exclude> </excludes> </configuration> </plugin>
-
-
-
不正確的依賴
- 使用 junit5 時需要添加一個 TestEngine 如下
<dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.2</version> </dependency> </dependencies>
-
資料夾路徑問題
- path:
- src/test/java/...
- src/test/resource/...
- path:
-
測試方法須加
public
-
-
issue
Connection failed! sun.security.validator.ValidatorException: PKIX path building failed:sun.security.provider.certpath.SunCertPathBuilderExceptions: unable to find certification path to requested target. -
錯誤原因
- SSL/TLS 通訊協定相關的錯誤
- 伺服器會傳回其證書以驗證其身份。如果沒有適當的證書鏈可供驗證伺服器證書,就會引發這個錯誤。
- 通常是由於缺少驗證伺服器證書的合法性而引起的
- SSL/TLS 通訊協定相關的錯誤
-
解決方式
-
若以 maven 憑證為例:
- 至repo.maven網站
- Click on lock icon and choose "View Certificate"
- Go to the "Details" tab and choose "Save to File"
- Choose type "Base 64(.CER)" and save it somewhere
- 至repo.maven網站
-
找到 java 目錄並進入 cmd
-
目錄位置:C:\Program Files\Zulu\zulu-8\jre\lib\security
-
執行 cmd
-
新增金鑰
keytool -import -trustcacerts -noprompt -keystore ${keystore.file} -storepass ${keystore.pass} -alias ${cert.alias} -file keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias ContrastMavenRepoServer -file
-
-
-
其他使用到指令
<!-- 刪除--> keytool -delete -noprompt -alias ${cert.alias} -keystore ${keystore.file} -storepass ${keystore.pass} <!-- 寫入 --> keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias ContrastMavenRepoServer -file D:/maven/key/repo.maven.apache.org.crt <!-- 查詢 --> keytool -list -keystore cacerts -alias ContrastMavenRepoServer -
參考資料: