有了一个 swift 包,我想在开始测试之前做一些全局配置(基本上是为所有测试配置日志记录)。
令人惊讶的是,这在 Linux 上很容易,可以在 allTests
public func allTests() -> [XCTestCaseEntry] {
Log.logger = HeliumLogger(.debug)
return [
testCase(MyTests.allTests),
// ...
]
但我不知道如何在 macOS 上执行此操作。欢迎任何提示。
最佳答案
您可以子类化 XCTest
并覆盖 setUp
,它在测试运行之前被调用,如下所示:
import XCTest
import LoggerAPI
import HeliumLogger
class LoggingTestCase: XCTestCase {
override class func setUp() {
Log.logger = HeliumLogger(.debug)
}
}
然后您可以让您的测试类继承自 LoggingTestCase
而不是 XCTestCase
。
这应该适用于 macOS 和 Linux。
关于swift - 如何为 swift 包中的所有测试调用全局设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50188031/