gpt4 book ai didi

java - Junit @Rule 和 Maven Checkstyle 插件

转载 作者:行者123 更新时间:2023-11-30 06:10:57 24 4
gpt4 key购买 nike

联合@Rulesmaven-checkstyle-plugin似乎彼此不一致。

如果 @Ruleprivate 或 package-private 那么结果是:

java.lang.Exception: The @Rule 'someRule' must be public.
at org.junit.internal.runners.rules.RuleFieldValidator.addError

然而,如果 @Rule 被设置为 public,checkstyle 会报错:

[INFO] --- maven-checkstyle-plugin:2.15:checkstyle (checkstyle-test) @ web-edge-server ---
[INFO] Starting audit...
SomeTest.java: Variable 'someRule' must be private and have accessor methods.

所以两个问题:

  1. 如果我想继续使用 @Rule 注释,有什么方法可以在本地或在测试中抑制此警告,而无需全局禁用 checkstyle 规则。
  2. 有谁知道为什么 junit 要求 @Rule 公开?这似乎是不必要的,因为在任何情况下都可以使用反射来访问它。

编辑:此 SO question 特别涵盖了第 2 项.

最佳答案

在 Checkstyle 6.5 中 VisibilityModifier检查获得的新属性 ignoreAnnotationCanonicalNames 默认设置为 org.junit.Rule,因此 @Rule 字段不应在此检查中触发违规。

根据 release history page , Checkstyle Maven Plugin 2.15 在底层使用 Checkstyle 6.1.1,所以将插件更新到 2.17 就足够了。

关于java - Junit @Rule 和 Maven Checkstyle 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34953148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com