当我从命令提示符运行mvn测试时,它不会显示在构建结束时哪些测试失败。不应该在测试中列出失败的测试错误吗?我正在使用windows xp :(我在命令提示符和console2中尝试过。
结果:
Tests in error:
Tests run: 402, Failures: 0, Errors: 1, Skipped: 2
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
Please refer to C:\code\btlims\java\chippingmanager\chipping-manager-client\target\surefire-reports for the individual test results.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 minutes 27 seconds
[INFO] Finished at: Tue Mar 29 09:19:58 CDT 2011
[INFO] Final Memory: 24M/43M
[INFO] ------------------------------------------------------------------------
答案 0 :(得分:5)
我使用Maven 3.0.3和maven-surefire-plugin 2.8版遇到了这个问题。在pom.xml的surefire插件部分中,确保printSummary选项设置为 true 。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8</version>
<configuration>
<printSummary>true</printSummary>
</configuration>
</plugin>
设置此选项后,您应该在命令行输出中看到完整的测试结果列表(包括失败)。根据{{3}},当此选项设置为false时,仍应列出失败的测试用例,但在我的设置中似乎不是这样。
答案 1 :(得分:0)
测试错误是由于例外而退出的测试 测试失败是断言不匹配/通过的测试。
你是对的 - 最后都要报告这两件事。
我试过这种方式
import static org.junit.Assert.fail;
import org.junit.Test;
public class FooBarTest {
@Test
public void testError() {
throw new RuntimeException();
}
@Test
public void testFailure() {
fail();
}
}
这会导致以下输出
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running FooBarTest
Tests run: 2, Failures: 1, Errors: 1, Skipped: 0, Time elapsed: 0.09 sec <<< FAILURE!
Results :
Failed tests:
testFailure(FooBarTest)
Tests in error:
testError(FooBarTest)
Tests run: 2, Failures: 1, Errors: 1, Skipped: 0
您应该遵循建议并查看target\surefire-reports
。也许发布受影响的报告以向我们提供更多信息。
如果可能,可以更新您的maven版本。