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
文章来源于领测软件测试网 https://www.ltesting.net/