运行maven测试命令时没有测试运行
问题描述:
有一个由其他人托管的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,所以我现在真的需要一些帮助。谢谢。
答
- 尝试将您的测试类放在/ src/test/java下。
- 你需要你的测试方法。不要使用主要的测试方法使用JUNIT 查看此参考:http://www.vogella.com/tutorials/JUnit/article.html
谢谢,它现在有效。其实我昨天已经尝试了方法2,但它对于一些未知的方法并不适用,现在它突然生效......也许我犯了一些愚蠢的错误。但无论如何,问题解决了。 –