isExcluded:判断一个类或包是否应该排除、使用系统标准装入
loadClass:synchronized 方法。装入一个类,覆盖父类方法,请参看JDK2中ClassLoader. loadClass 定义,对于在fExcluded 的类,采用findSystemClass 直接装入。其他的将在fPathItems 定义的路径中寻找(调用lookupClassData),找到了就使用defineClass 将lookupClassData 返回的字节流转为类并返回,否则就抛出ClassNotFoundException
package private(default)
isJar:判断一个文件是否用jar 或zip 结尾
private
scanPath:由TestCaseClassLoader 调用将搜索路径加到fPathItems 中
lookupClassData:查找指定的类,并将class 内容以字节流的方式返回,
调用了loadJarData,loadFileData。
loadFileData:从文件中装入类的字节流实际读入是调用函数getClassData
loadJarData:从zip 文件中(注意,3.72junit 不支持jar 文件)读入类的字
节流
readExcludedPackages:将defaultExclusions 及EXCLUDED_FILE 中定义
的要排除的类加入到fExcluded 中
Class ReloadingTestSuiteLoader
实现接口TestSuiteLoader,使用TestCaseClassLoader 来装入类。主要方法:
load:装载
reload:重新装载
Class ClassPathTestCollector
实现TestCollector接口,分析Java Class Path,并对Class Path中所有的类(JAR、
ZIP 文件除外)进行分析,根据指定的规则找出可以运行的测试类。具体规则见
isTestClass 方法
主要属性:
static final int SUFFIX_LENGTH:保持”.class”的长度
文章来源于领测软件测试网 https://www.ltesting.net/