动态识别测试类

时间:2015-05-22 09:10:47

标签: java reflection junit testng

我需要一个解决方案来从jar文件中识别测试类并执行它们。这是我的Web应用程序接受jar文件作为输入并识别jar中的测试类并执行它们并显示结果。

目前,每当我尝试从jar访问类文件时,我都会遇到类未找到的异常。我想我需要将外部jar文件添加到我的类路径中?

1 个答案:

答案 0 :(得分:0)

以下是您可以遵循的一些步骤:

  1. 获取Jar文件路径
  2. 从中读取课程
  3. 迭代这些课程
  4. 获取每个班级的方法
  5. 检查每个班级中使用的注释。
  6. 最新版本的JUnit测试类具有@Test注释。因此,如果您获得@org.junit.Test注释,则可以说它是一个测试类。

        Method[] methods = classObject.getClass().getMethods();
    
        for (Method method : methods) {
            Annotation[] annotations = method.getAnnotations();
            for (Annotation annotation : annotations) {
                System.out.println(annotation.toString());
            }
        }
    
  7. 此代码的输出 -

    @org.junit.Test(expected=class org.junit.Test$None, timeout=0)
    @org.junit.After()
    
    1. 一旦找到测试类就执行它。