[英]teardown for whole test suite
我有一個測試套件,其中有許多測試類,每個類都有許多測試。 現在,如果我定義
+ (void)tearDown
在任何類中,那么它將僅在該類的所有測試之后運行。 和
- (void)tearDown
將在每次測試后運行。 我想定義一個tearDown方法,並希望在所有類的所有測試之后運行它。 福克斯,例如,如果我有5個班級,每個班級都有7個測試。 所以我想在所有35個測試之后運行這個tearDown函數。
如果我正確理解您的問題,則可以使用completion block methods
使用全局變量/標志記錄每個方法的完成情況,如下所示:
+ (void)myMethod:(UIView *)exampleView completion:(void (^)(BOOL finished))completion {
if (completion) {
completion(finished);
}
}
看看這個以獲得更好的解釋。
然后創建一個方法來檢查是否所有任務都已執行,並在需要時運行最終測試,如下所示:
- (void)finalTest {
if (CHECK GLOBAL FLAG FOR COMPLETION OF OTHER TASKES) {
// do final test
} else {
// repeat check after 0.1 seconds
[self performSelector:@selector(finalTest)
withObject:nil
afterDelay:0.1];
}
}
由於您正在尋找一種在所有測試完成后調用__gcov_flush()的方法,因此請參見https://qualitycoding.org/ios-7-code-coverage/ 。 Mac版Google工具箱中的最新代碼顯示了如何使用測試觀察者以及SenTestingKit和XCTest的版本來執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.