如何找出源代码中的测试用例,我可以将它们分类吗?

时间:2012-11-08 14:14:29

标签: java junit

我正在处理一个大型项目,其中有50,000个源文件,大约5000个测试,分布在2000个类中。这些测试主要是JUnit 3,其中包含一些JUnit 4.这些测试在批处理文件中经常(每天或每周)运行,以确保产品正常运行且不会出现回归或其他问题。

我想枚举源文件或类文件,并生成一个表示项目中测试用例的类和方法列表。我可以比较此列表以确定批处理文件未运行哪些测试。

有没有简单的方法来执行此操作,例如JUnit中的功能?或者JUnit中是否有功能我可以以编程方式驱动它,例如扫描一个充满类文件的目录并找出哪些是测试。我意识到我可以编写代码来单独加载每个类并开始检查它是​​否具有某些特性但是如果存在某些东西我希望能够使用它。

问题的第二部分,是否有任何常用的方法来注释测试?如果我可以注释测试,我可能会过滤它们并根据过滤条件动态生成批处理文件。例如运行所有需要网络连接的测试,运行使用子系统A的所有测试,依此类推。

有什么能帮我这么做的吗?我意识到我可以使用逗号分隔的值列表或其他内容来滚动我自己的注释,但也许这种事情已经形式化,并且有一些工具可以使用它。

1 个答案:

答案 0 :(得分:0)

测试是扩展TestCase(在JUnit 3的情况下)或注释为@Test的类(在JUnit 4的情况下)。因此,使用IDE或以编程方式执行操作不是问题:编写程序以递归方式查找所有*class文件到类文件夹中,并测试类是否扩展TestCase或注释为{{1 }}。