我们正在使用一些通过maven包含xml解析器库的库。我们认为我们已经排除了大部分内容,因为我们正在使用更新的版本。
是否有某种JUnit库可以检查是否存在该jar或是否存在该jar并且测试失败?或者我们只需要编写一些代码来解压缩归档并循环遍历目录检查它吗?
答案 0 :(得分:1)
通常当发生这种情况时,两个jar中都会出现类,因此您可以检查类路径以查找重复项。给定一个类,您可以看到它在类路径中出现的频率:
public void testSomeClassInClassPathOnce() {
String className = SomeClass.class.getName();
String path = className.replace('.', File.separatorChar) + ".class";
Enumeration<URL> urls = ClassLoader.getSystemResources(path);
assertTrue(urls.hasMoreElements());
urls.nextElement();
assertFalse(urls.hasMoreElements());
}
如果旧jar有一个不在新类中的类,那么你可以使用ClassLoader.getSystemResource()
来查看该类是否在你的类路径中。
请注意,您需要确保您的JUnit测试包含类路径中的所有生产jar。