我有一个UI(桌面应用程序),该UI显示项目/存储库中所有扩展名为“ .java”的文件,以便用户可以选择这些文件(所选类添加到testng xml)并运行它们(桌面应用程序)运行testng xml)。
我的要求很简单,我想在项目/存储库中使用@test注释搜索所有方法,而不是使用文件扩展名搜索。
这可以通过testng或Java Reflection实现吗?请提出建议。
也欢迎其他任何建议/方法。
答案 0 :(得分:0)
看看我的开源库: https://github.com/AutomatedOwl/testng-disabled-tests
private AtomicReference<String> extractJavaTestsCode(
AtomicReference<String> javaTestsCode, IInvokedMethod iInvokedMethod) {
// Search for files of java tests classes.
try (Stream<Path> paths = Files.walk(Paths.get(
System.getProperty("user.dir") + getTestsPath(iInvokedMethod)))) {
paths.filter(Files::isRegularFile)
// For each java test file, concat its string.
.forEach(file -> {
String javaTestFileCode = readLinesFromFile(file.toString());
javaTestsCode.set(
String.join("\n", javaTestsCode.get(), javaTestFileCode));
});
} catch (Exception exception) {
// Do nothing.
}
return javaTestsCode;
}
它在给定的路径中显示了禁用的测试方法,对正则表达式的解析代码进行了少许修改,它应该可以完全按照您的描述进行操作。