1膘壶、XCTestSuite
官方解釋:
@interface XCTestSuite : XCTest {
#ifndef __OBJC2__
@private
id _internalImplementation;
#endif
}
+ (instancetype)defaultTestSuite;
+ (instancetype)testSuiteForBundlePath:(NSString *)bundlePath;
+ (instancetype)testSuiteForTestCaseWithName:(NSString *)name;
+ (instancetype)testSuiteForTestCaseClass:(Class)testCaseClass;
+ (instancetype)testSuiteWithName:(NSString *)name;
- (instancetype)initWithName:(NSString *)name NS_DESIGNATED_INITIALIZER;
- (void)addTest:(XCTest *)test;
@property (readonly, copy) NSArray <__kindof XCTest *> *tests;
@end
綜上可知错蝴,該類可在任意地方獲取已經(jīng)建立的XCTestCase用例個(gè)數(shù),可通過用例名颓芭、類名來查找具體的用例顷锰;也可通過屬性獲取用例數(shù)組后,遍歷獲取用例亡问;
舉個(gè)栗子:
XCTestSuite *suite = [XCTestSuite defaultTestSuite];
NSArray *array = suite.tests;
for (XCTestCase *cases in array) {
NSLog(@"%@",cases.description);
}
運(yùn)行結(jié)果:
2官紫、獲取完整log日志:
日志存儲(chǔ)路徑:
/Users/username
/Library/Developer/Xcode/DerivedData/project
/Logs/Test
(1)每個(gè)case執(zhí)行結(jié)果截圖在Attachments
文件夾;
(2)case執(zhí)行正確、錯(cuò)誤數(shù)量:.plist
文件
(3)log輸出:.log
文件
(4)已經(jīng)點(diǎn)擊成功的控件元素本地緩存:Cache.db
備注:當(dāng)某個(gè)用例執(zhí)行失敗時(shí)束世,無日志保存酝陈。根據(jù)這些成功后的信息,后續(xù)想完成一個(gè)log顯示系統(tǒng)
3毁涉、解析并簡單顯示測試結(jié)果
(1)通過.plist
文件找出所有的執(zhí)行case詳細(xì)信息:
其中沉帮,ActivitySummaries中包含了所有的case信息,但是我們只需要拿到:
Title:case信息薪丁;
UUID:截圖保存的名稱遇西;
備注:關(guān)于UUID有一些又多層疊加,所以需要在子層中找到存在的截圖名稱严嗜,如下圖中的第三層才是正確的:
(2)Python解析文件粱檀,并編寫HTML給出簡單的日志分析表:
首先安裝PyH,使用方法點(diǎn)擊此處漫玄。
安裝:
sudo python setup.py install
關(guān)于源碼茄蚯,見請GitHub
(3)在解析的過程中過濾了大量沒有截圖的信息:
def function_dictionary(rootPath,dictionary,title_array):
title = str(dictionary['Title'])
imagePath = append_image_path(rootPath,dictionary['UUID'])
global isWait
if "Synthesize event" in title:
return title_array
elif "Snapshot accessibility hierarchy for com.meelive.ingkee" in title:
return title_array
elif "Use cached accessibility hierarchy for com.meelive.ingkee" in title:
return title_array
elif "Unable to" in title:
return title_array
elif "Set Up" in title:
return title_array
elif "Terminate" in title:
return title_array
elif "Get" in title:
return title_array
elif "Find" in title:
return title_array
elif "Launch com.meelive.ingkee" in title:
return title_array
elif "Start Test" in title:
return title_array
else:
title_array.append({title:imagePath})
return title_array
結(jié)果展示頁: