我的日食中有一个maven项目(m2eclipse) 我想写一些简单的测试:
public class AppTest {
@Test
public void test() {
fail("Not yet implemented");
}
}
如果我在Eclipse中运行Maven测试(Run - > Run As - > Maven测试),它会产生预期的输出:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running app.AppTest
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.076 sec <<< FAILURE!
Results :
Failed tests: test(app.AppTest): Not yet implemented
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
但是,如果我在我的控制台中通过“mvn test”尝试相同的操作,则测试不会执行:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
如何通过mvn test
运行测试?
答案 0 :(得分:2)
确保您的测试用例位于src/test/java
目录中,而不是src/main/java
中。 surefire
插件只会运行位于src/test/java
下的测试用例。
在Eclipse中创建此目录,在那里移动测试用例,然后执行 Maven&gt;更新项目配置,它将在Eclipse中添加src/test/java
作为源文件夹。
从命令行运行Maven时,它还应该显示它正在编译测试类。确保发生这种情况,例如
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 7 resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Compiling 31 source files to /dummy-project/target/test-classes
答案 1 :(得分:0)
您可以尝试以下命令:
mvn clean generate-sources install
答案 2 :(得分:0)
对于遇到同样问题但在本文中找不到答案的人(这是Google的最高结果),请检查您导入的@Test注释。
我有import org.junit.Test;
听起来不错,但是我的测试没有运行。尝试过import org.testng.annotations.Test;
,它可以正常工作。
由于TestNG正在运行测试,因此似乎很明显...