我正在学习 SonarQube 的 API,试图扩展 java 插件规则。我成功地遵循了本教程。
现在我想构建一个简单的分析来检查toString()
单元测试中是否使用了某个方法。
public class TS_SensitiveEqualityCheck extends BaseTreeVisitor implements JavaFileScanner {
private final Deque<Boolean> methodContainsToStringInAssert = new ArrayDeque<Boolean>();
private final Deque<Boolean> inUnitTest = new ArrayDeque<Boolean>();
private JavaFileScannerContext context;
@Override
public void scanFile(final JavaFileScannerContext context) {
this.context = context;
scan(context.getTree());
}
@Override
public void visitMethod(MethodTree methodTree) {
if (ModifiersUtils.hasModifier(methodTree.modifiers(), Modifier.ABSTRACT)) {
return;
}
boolean isUnitTest = isUnitTest(methodTree);
inUnitTest.push(isUnitTest);
System.out.println("For method " + methodTree.simpleName()
+ " found [isUnitTest | isViolation] : "
+ String.valueOf(isUnitTest)); …Run Code Online (Sandbox Code Playgroud)