in src/controller/utils.ts [47:77]
export async function getProjectType(item: IJavaTestItem): Promise<ProjectType> {
if (item.testLevel !== TestLevel.Project) {
throw new Error('The test item is not a project');
}
if (!item.natureIds) {
return ProjectType.Other;
}
const hasClasspathFile: boolean = await fse.pathExists(path.join(Uri.parse(item.uri!).fsPath, '.classpath'));
let hasJavaNature: boolean = false;
for (const id of item.natureIds) {
if (id.includes('maven2Nature')) {
return ProjectType.Maven;
}
if (id.includes('gradleprojectnature')) {
return ProjectType.Gradle;
}
if (id.includes('javanature')) {
hasJavaNature = true;
}
}
if (hasJavaNature && !hasClasspathFile) {
return ProjectType.UnmanagedFolder;
}
return ProjectType.Other;
}