Java 单线声纳插件maven测试中的多个问题

Java 单线声纳插件maven测试中的多个问题,java,maven,sonarqube,sonar-plugin,Java,Maven,Sonarqube,Sonar Plugin,我正在为Java编写一个自定义规则。需要捕获两个Tree.KIND实例(STRING_LITERAL和ASSIGNMENT)。 有一行字符串文字逻辑和赋值逻辑都会引发问题。但声纳测试抛出了错误的说法 意外发生在[行号] 该特定行有注释//Noncompliant表示问题。但是测试用例仍然失败,因为相同的错误被两个不同的逻辑捕获 有两种解决方法 如果可能,尝试以在不同行上检测每个问题的方式拆分测试代码。在赋值和文字之间加上换行符应该不是很困难 您可以使用特殊语法,使用Noncompliant@+[

我正在为Java编写一个自定义规则。需要捕获两个Tree.KIND实例(STRING_LITERAL和ASSIGNMENT)。 有一行字符串文字逻辑和赋值逻辑都会引发问题。但声纳测试抛出了错误的说法

意外发生在[行号]


该特定行有注释//Noncompliant表示问题。但是测试用例仍然失败,因为相同的错误被两个不同的逻辑捕获

有两种解决方法

  • 如果可能,尝试以在不同行上检测每个问题的方式拆分测试代码。在赋值和文字之间加上换行符应该不是很困难
  • 您可以使用特殊语法,使用
    Noncompliant@+[offset]
    语法,其中
    [offset]
    替换为整数。通过这种方式,您可以通过使用一条
    //Noncompliant
    注释和一条带有偏移符号的注释来指示行有两个问题。
    
    // Noncompliant@+1
    int x=“Hello”.length();//不合规
    

  • 有两种方法可以解决这个问题

  • 如果可能,尝试以在不同行上检测每个问题的方式拆分测试代码。在赋值和文字之间加上换行符应该不是很困难
  • 您可以使用特殊语法,使用
    Noncompliant@+[offset]
    语法,其中
    [offset]
    替换为整数。通过这种方式,您可以通过使用一条
    //Noncompliant
    注释和一条带有偏移符号的注释来指示行有两个问题。
    
    // Noncompliant@+1
    int x=“Hello”.length();//不合规
    

  • 谢谢我有一个自定义规则,在visitNode期间调用reportIssue大约10次,有时每行2次。但声纳可能会忽略一些问题。由JavaCheckVerifier.verify运行的本地验证运行良好。原因是什么,我应该拆分我的规则吗?请在所有相关的信息库中发布一个单独的问题。我有一个自定义规则,在visitNode期间调用reportIssue大约10次,有时每行2次。但声纳可能会忽略一些问题。由JavaCheckVerifier.verify运行的本地验证运行良好。原因是什么,我应该拆分我的规则吗?请发布一个包含所有相关信息的单独问题