public:
LoadingTestCollector:初始話,實例化fLoader
protected:
isTestClass:覆蓋父類中的方法,注意還有一個Package private(Default)的
isTestClass 。使用classFromFile 從文件生成一個Class 后調用Package
private(Default)的isTestClass 判斷是否是一個測試類。
package private(Default):
classFromFile:使用TestCaseClassLoader 從一個文件中裝入類
isTestClass:判斷一個Class 是否是一個測試類,判斷的依據是是否包括一
個在BaseTestRunner. SUITE_METHODNAME定義名稱的方法(suite)方法或者
是具有以下特性:
1、實現了Interface test,
2、有一個Public 的Constructor 方法
3、Modifier 是public 的
hasSuiteMethod:判斷十分有BaseTestRunner. SUITE_METHODNAME定義
名稱的方法
hasPublicConstructor:判斷是否有有一個Public 的Constructor 方法
Class BaseTestRunner
BaseTestRunner 是一個抽象類,是所有Runner 的基類。BaseTestRunner 使用
類靜態代碼,在被初始化的時候運行。
主要屬性
public static final String SUITE_METHODNAME= "suite":suite 方法定義
static Properties fPreferences:保存參數
static int fgMaxMessageLength= 500:定義最長Message 長度
static boolean fgFilterStack= true:是否過慮錯誤信息
boolfPreferencesean fLoading= true:標志是否使用自定義的ClassLoad 類
主要方法
Public:
getTest : 根據suiteClassName 名稱返回一個TEST 類, 如果類有
SUITE_METHODNAME 定義的方法, 調用suite 方法, 否則返回new
TestSuite(testClass),創建一個新的suite。
elapsedTimeAsString:將時間轉為指定格式的字符串
setLoading:設置fLoading
extractClassName:從一個字符串中返回ClassName,主要是處理VA/Java style
truncate:static 方法,將一個字符串截為指定長度
getLoader : 判斷并返回使用ReloadingTestSuiteLoader 還是
StandardTestSuiteLoader,調用useReloadingTestSuiteLoader 方法
getPreference:從fPreferences 中返回指定的參數值
inVAJava:判斷是否在VisualAge 環境中
getFilteredTrace:將參數Throwable t 中包括的信息進行過濾(Filter)并返回
處理后的字符信息
filterStack:對字符進行過濾
filterLine:判斷字符是否應該過濾
protected:
processArguments:處理傳入的參數,如果參數中包括了要運行TestSuite 則
返回TestSuite 名稱,如果參數中包括“-noloading”,則調用setLoading(false)
不使用ReloadingTestSuiteLoader,使用StandardTestSuiteLoader。如果參數中包
括”-nofilterstack”,設置fgFilterStack="false,可以使用“-c" xxx”指定要測試的類
runFailed:abstract 方法,運行失敗時處理
loadSuiteClass:從一個TestSuite 的名稱裝入一個類,調用getLoader 來判斷
使用ReloadingTestSuiteLoader 還是StandardTestSuiteLoader
clearStatus:清楚狀態信息,需要子類覆蓋
useReloadingTestSuiteLoader:判斷是否使用ReloadingTestSuiteLoader
private:
getPreferencesFile:讀取參數配置文件,配置文件名稱為junit.properties,
應該放在System.getProperty("user.home")指定的目錄下
readPreferences:將參數配置文件中的內容放到fPreferences 中
程序中的靜態代碼完成fPreferences 的初始話及讀取參數文件、設置
fgMaxMessageLength。
Package textui
Package textui 僅有一個類TestRunner,用于實現文本方式的運行。
Class TestRunner
繼承BaseTestRunner,TestRunner 用于完成文本方式的測試運行。
主要屬性:
PrintStream fWriter= System.out:輸出流
int fColumn= 0:僅用于startTest 方法,其實可以不用
主要方法:
Public:
TestRunner:構造函數,可以自己指定輸出流
getLoader : 覆蓋父類方法, 只使用默認的類裝入
(StandardTestSuiteLoader)
addError:synchronized 方法,增加一個錯誤
addFailure:synchronized 方法,增加一個失敗
doRun:運行指定的TestSuite 并返回TestResult
startTest:開始測試
endTest:結束測試
main:運行函數,用于外部直接調用。將參數直接轉給start 方法。主要
參數為
-wait:設定等待
-v:顯示版本號
-c 類名稱:要運行的測試類
具體看start 方法。
print:synchronized 方法,輸出結果,調用printErrors(result);
printFailures(result);
printHeader(result);
printErrors:輸出錯誤
printFailures:輸出失敗
printHeader:輸出總計
run:運行指定的TestCase/TestSuite
runAndWait:運行指定的TestSuite 并等待,參看pause 方法
Protected
createTestResult:創建一個TestResult
pause:判斷是否要pause
start:運行測試,由main 方法調用。
runFailed:運行失敗處理方法
writer:返回輸出流fWriter
文章來源于領測軟件測試網 http://www.kjueaiud.com/