如何使java反射也采用依赖类?

时间:2014-11-17 13:05:54

标签: java reflection dependencies

我正在使用java反射来获取包含TestNG测试的所有类名。所以,我这样做,并且工作正常:

String pack = "com.project.automation.tests";
Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forPackage(pack))
        .setScanners(new MethodAnnotationsScanner()));
Set<Method> testMethods = reflections.getMethodsAnnotatedWith(Test.class);

有没有办法从maven依赖项中获取类?我的意思是,如果我对包含TestNG测试的类有依赖关系,那么我想反思也是如此。你知道怎么做吗?此致

1 个答案:

答案 0 :(得分:1)

您的代码应该找到类路径上的所有TestNG测试类(无论您运行的是什么)。如果依赖TestNG类在类路径上,它将找到它们。

但是,如果您的依赖项是从Maven Central等获取的生产库JAR,那么JAR可能不会包含库的单元测试。在生产JAR中分发单元测试通常是不正常的做法。并且通常的做法是运行依赖单元测试...如果您没有自己构建受抚养人。


我不知道任何Maven插件可以为依赖单元测试获取JAR ......我怀疑它在技术上是不可能的。

您最好的选择是手动下载相关源代码,构建它,然后手动将dependents单元测试类(或JAR)添加到正在进行搜索的任何应用程序的类路径中。