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”的長度
文章來源于領測軟件測試網 http://www.kjueaiud.com/