有一個由其他人託管的maven項目,它有src/main
目錄和src/test
目錄。 src/test
dir包含一個以Test
結尾的java文件,我將其稱爲ATest.java
,而類ATest
僅包含靜態void main函數。這就像運行maven測試命令時沒有測試運行
//omitted
public class ATest {
public static void main(String[] args) throws Exception {
BTester.main(null);
CTester.main(null);
}
}
其中BTester
和CTester
是目錄下兩個文件 src/main/java/<package_path>/tester
當我鍵入mvn clean test
,它顯示
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
我嘗試以下方法:
import org.junit.Test
並在主函數之前添加@Test
描述符,但它會給出錯誤,因爲main是靜態的並且它接受參數。然後我試着將BTester.main
和CTester.main
轉換成另一個功能testmain
並在testmain
之前加@Test
,但是編譯時會導致錯誤,說我有未捕獲的異常,即使我加了throws Exception
?使用
maven-surefire-plugin
,這裏是我做到了在pom.xml
文件<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.20</version> <configuration> <includes> <include>ATest.java</include> </includes> </configuration> </plugin>
但它仍然無法正常工作。
我錯過了什麼?我對Java不是很熟悉,而不是Maven,所以我現在真的需要一些幫助。謝謝。
謝謝,它現在有效。其實我昨天已經嘗試了方法2,但它對於一些未知的方法並不適用,現在它突然生效......也許我犯了一些愚蠢的錯誤。但無論如何,問題解決了。 –