Я хочу создать инструмент для обнаружения тестовых запахов. Для этого мне нужно найти тестовые классы или тестовую функцию.
Я анализирую весь проект и проверяю все функции.
new DirExplorer((level, path, file)->
path.endsWith(".java"), (level, path, file) -> {
ASTParser parser = ASTParser.newParser(AST.JLS3);
String str = readUsingBufferedReaderCharArray(file);
parser.setSource(str.toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.accept(new ASTVisitor() {
@Override
public boolean visit(MethodInvocation node) {
final String REGEX = "assert";
final String INPUT = node.getName().toString();
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT);
if(m.find()){
node.accept(new ASTVisitor() {
@Override
public boolean visit(MethodInvocation node1) {
// TODO Auto-generated method stub
if (node1.getName().toString().equals("toString")) {
int l = cu.getLineNumber(node1.getStartPosition());
sb.append("Found in line number: " + l + " -----> in "+ file.getName()+"\n");
b = true;
}
return super.visit(node1);
}
});
}
return super.visit(node);
}
});
if (b == false)
sb.append("Not Found in " + file.getName()+"\n");
jt.setText(sb.toString() + "\n");
}).explore(rootFile);
}
Этот код проверяет все функции и все классы в проекте. Но мне нужны только тестовые классы