簡體   English   中英

整個測試套件的拆卸

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM