我正在处理一个包含 50,000 个源文件的大型项目,其中大约 5000 个测试分布在 2000 个类中。这些主要是 JUnit 3 和少量的 JUnit 4。这些测试从批处理文件中频繁(每天或每周)运行,以确保产品正常工作并且不会出现回归或其他问题。
我想枚举源文件或类文件,并生成代表项目中测试用例的类和方法列表。我可以比较这个列表来确定批处理文件没有运行哪些测试。
是否有任何简单的方法可以做到这一点,例如 JUnit 中的功能?或者 JUnit 中是否有我可以通过编程驱动来获取它的功能,例如扫描一个充满类文件的目录并找出哪些是测试。我意识到我可以编写代码来单独加载每个类并开始检查它的某些特征,但如果存在某些东西,我希望能够使用它。
问题的第二部分,有没有常用的方法来注释测试?如果我可以注释测试,我可能会过滤它们并动态生成根据过滤条件运行它们的批处理文件。例如,运行所有需要网络连接的测试,运行所有使用子系统 A 的测试等等。
有什么可以帮助我做到这一点吗?我意识到我可以使用逗号分隔的值列表或其他东西来滚动我自己的注释,但也许这种东西已经正式化并且有工具可以使用它。