Junit @Rules和maven-checkstyle-plugin似乎彼此不一致。Junit @規則和Maven Checkstyle插件
如果@Rule
是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.
所以兩個問題:
- 如果我想繼續使用t他
@Rule
註解有什麼辦法可以在本地或在測試中抑制此警告,而無需全局禁用checkstyle規則。 - 有誰知道爲什麼junit要求
@Rule
公開?這似乎是不必要的,因爲無論如何它都可以通過反射進行訪問。
編輯:第2項具體由此SO question覆蓋。
對於2/HTTP:// stackoverflow.com/questions/14335558/why-rule-annotated-fields-in-junit-has-to-be-public – 2016-01-22 18:15:30
For 1/http://stackoverflow.com/questions/4023185/how-to-disable-a - 特定行號 - 特定行號的規則(我使用這個關閉作爲重複投票) – 2016-01-22 18:16:04
你使用什麼Checkstyle版本? –