Maven 不输出 junit CHECKSTYLE 报告
Posted
技术标签:
【中文标题】Maven 不输出 junit CHECKSTYLE 报告【英文标题】:Maven not outputting junit CHECKSTYLE report 【发布时间】:2016-10-15 23:16:17 【问题描述】:在默认配置之后,maven 只为源类输出Checkstyle report,而不是 Junit 测试类。请注意,我不是在寻找万无一失的测试报告输出。
来自 pom.xml:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<reportSets>
<reportSet>
<reports>
<report>checkstyle</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<configLocation>src/main/resources/apcheckstyle.xml</configLocation>
<module name="LineLength">
<property name="max" value="120"/>
</module>
</configuration>
</plugin>
</plugins>
我将 junit 的依赖范围从 test 更改为 compile:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
Maven 被配置为使用 mvn 站点插件生成 checkstyle 报告。 我尝试将用户属性 includeTestResources 添加为 true,但这没有帮助。文档说明默认值为true,所以我把它拿出来了。
这是检查样式生成期间的 maven 输出。
来自 javadocs:
正在生成 C:\Users\Administrator\Projects\lht657aws\target\site\testapidocs\help-doc.html...
checkstyle 插件运行:
[INFO] 生成“Checkstyle”报告 --- maven-checkstyle-plugin:2.17
[INFO] Checkstyle 6.11.2 使用 src/main/resources/apcheckstyle.xml 规则集报告了 210 个错误。
正在关注问题-? src 下的所有 java 都被处理,只是被测试的 java 被跳过:
[警告] 无法找到要链接到的源外部参照 - 已禁用
checkstyle 后,maven 项目信息报告开始
[INFO] 生成“依赖项”报告 --- maven-project-info-reports-plugin:2.9
【问题讨论】:
编辑澄清这实际上是关于 checkstyle 报告并添加了来自 Maven 的输出。 【参考方案1】:将 Maven Surefire Report 插件添加到您的 pom XML 中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<outputDirectory>path/to/the/report</outputDirectory>
</configuration>
</plugin>
并将目标 surefire-report:report
添加到您的 maven 调用中
在此处查看文档:Maven Surefire Report Plugin
编辑
我误解了这个问题,尝试将此部分与所需配置添加到您的 pom 中。
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<reportSets>
<reportSet>
<id>main_checks</id>
<reports>
<report>checkstyle</report>
</reports>
<configuration>
<sourceDirectory>$project.build.sourceDirectory</sourceDirectory>
<includeTestSourceDirectory>false</includeTestSourceDirectory>
<configLocation>config/maven_checks.xml</configLocation>
<outputDirectory>$project.reporting.outputDirectory/main-checks/</outputDirectory>
</configuration>
</reportSet>
<reportSet>
<id>test_checks</id>
<reports>
<report>checkstyle</report>
</reports>
<configuration>
<sourceDirectory></sourceDirectory>
<testSourceDirectory>$project.build.testSourceDirectory</testSourceDirectory>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<configLocation>config/sun_checks.xml</configLocation>
<outputDirectory>$project.reporting.outputDirectory/test-checks/</outputDirectory>
</configuration>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
【讨论】:
感谢 Jorge,我发现这是一个普遍存在的问题,因为它让我很难找到 my 问题的答案。我对Checkstyle report, 感兴趣,而不是测试报告.. 对不起,我误解了你的问题。查看我的编辑并尝试一下。 谢谢!我尝试过这个。这让我完全走上了正轨。问题是我的configuration
节点位于plugin
级别,而不是reportSet
级别。请注意,我无法让 2.6 使用我的自定义配置文件,似乎有一个 bug 重铺。所以我在2.17。请更新您的答案,或者我可以输入答案。
好的!已编辑。很高兴你能解决你的问题。我离开了这个旧版本,因为它来自我的一个旧答案。忘记更新了。【参考方案2】:
Maven 确保插件用于生成测试报告。请参阅此处的其他文档:
http://maven.apache.org/surefire/maven-surefire-report-plugin/
您需要在您的 POM.xml 中包含此插件并提供创建报告的路径(通常是项目中的目录)。在进行构建时,请确保您包含此目标。
【讨论】:
我对@987654322@ 感兴趣,而不是测试报告。 Checkstyle 报告评估测试类中 java 的语法。 哦!上面约翰提出的我的坏..解决方案完全正确,我的 :+1 。以上是关于Maven 不输出 junit CHECKSTYLE 报告的主要内容,如果未能解决你的问题,请参考以下文章
Maven 3 和 JUnit 4 编译问题:包 org.junit 不存在