2
Javaプラグイン3.14でSonarqube 5.5を実行していて、 "mvn clean deploy sonar:sonar"というsonar-maven-pluginバージョン3.0.2で分析しています。私たちのHamcrestアサーションは、ルールS2699の有効なアサーションとして認識されないのはなぜですか?
我々はまだテストコードは、次のようなものが含まれている場合、違反が不足しているassertThatについて「このテストケースに少なくとも一つのアサーションを追加」を取得。
import static org.hamcrest.Matchers.hasSize;
import static org.junit.Assert.assertThat;
[...]
@Test
public void testByClassicCompare() throws InvalidPropertiesFormatException {
final CompareFilter compareFilter = new CompareFilter("gid", 333, Operation.LT);
assertThat(findAll(compareFilter), hasSize(1));
}
findAll()はテストクラスのメソッドです。それはちょうど、いくつかの休止ファインダーを呼び出して、オブジェクトのコレクションを返します。
protected Collection<MyObject> findAll(final HbnFilter filter)
更新: 我々は次のようにアサートを変更すると、ソナーはアサートを認識しています。
assertThat(findAll(compareFilter).size(), eq(1));
「findAll」メソッドとは何ですか?プロジェクトをMavenで分析していますか?あなたがバイトコードを分析にどのように提供していないのでしょうか?バージョン4.0のjavaプラグイン(SQ LTS 5.6が必要です)で型推論が大幅に改善されたので、このバージョンを試すことができますか? – benzonico
@benzonicoあなたのご意見に基づいて質問を更新しました。前述のプロジェクトはすでにjava 8ですが、SQを5.5から5.6に更新するまで、他のすべてのプロジェクトをjava 8に移行する必要があります。 –
アナライザーとsonarqubeサーバーを実行するにはJava 8が必要ですが、 java 8ではありません。 – benzonico