默认情况下,maven-surefire-plugin会在项目的target/surefire-reports目录下生成两种格式的错误报告:
·简单文本格式
·与JUnit兼容的XML格式
例如,运行10.1.3节代码清单10-10中的RandomGeneratorTest后会得到一个名为com.juvenxu.mvnbook.account.captcha.RandomGeneratorTest.txt的简单文本测试报告和一个名为TEST-com.juvenxu.mvnbook.account.captcha.RandomGeneratorTest.xml的XML测试报告。前者的内容十分简单:
这样的报告对于获得信息足够了,XML格式的测试报告主要是为了支持工具的解析,如Eclipse的JUnit插件可以直接打开这样的报告,如图10-2所示。
图10-2 使用Eclipse JUnit插件打开成功的XML测试报告
由于这种XML格式已经成为了Java单元测试报告的事实标准,一些其他工具也能使用它们。例如,持续集成服务器Hudson就能使用这样的文件提供持续集成的测试报告。
以上展示了一些运行正确的测试报告,实际上,错误的报告更具价值。我们可以修改10.1.3节代码清单10-11中的AccountCaptchaServiceTest让一个测试失败,这时得到的简单文本报告会是这样:
报告说明了哪个测试方法失败、哪个断言失败以及具体的堆栈信息,用户可以据此快速地寻找失败原因。该测试的XML格式报告用Eclipse JUnit插件打开,如图10-3所示。
图10-3 使用Eclipse JUnit插件打开失败的XML测试报告
从图10-3所示的堆栈信息中可以看到,该测试是由maven-surefire-plugin发起的。