如何在swift包中调用所有测试的全局设置?

时间:2018-05-05 09:48:23

标签: swift macos xctest swift-package-manager

有一个swift包,我想在开始测试之前做一些全局配置(基本上为所有测试配置日志记录)。 令人惊讶的是,这在Linux上很容易,可以在allTests

中添加代码
public func allTests() -> [XCTestCaseEntry] {
    Log.logger = HeliumLogger(.debug)
    return [
        testCase(MyTests.allTests),
        // ...
    ]

但我不知道如何在macOS上执行此操作。任何提示都是受欢迎的。

1 个答案:

答案 0 :(得分:1)

您可以继承XCTest并覆盖setUp,它在测试运行之前调用,如下所示:

import XCTest
import LoggerAPI
import HeliumLogger

class LoggingTestCase: XCTestCase {

    override class func setUp() {
        Log.logger = HeliumLogger(.debug)
    }
}

然后,您可以让测试类继承自LoggingTestCase而不是XCTestCase

这应该适用于macOS和Linux。