swift - 如何为 swift 包中的所有测试调用全局设置?
问题描述
有了一个 swift 包,我想在开始测试之前做一些全局配置(基本上为所有测试配置日志记录)。令人惊讶的是,这在可以添加代码的 Linux 上很容易allTests
public func allTests() -> [XCTestCaseEntry] {
Log.logger = HeliumLogger(.debug)
return [
testCase(MyTests.allTests),
// ...
]
但我不知道如何在 macOS 上执行此操作。欢迎任何提示。
解决方案
您可以在测试运行之前调用 subclassXCTest
和 override setUp
,如下所示:
import XCTest
import LoggerAPI
import HeliumLogger
class LoggingTestCase: XCTestCase {
override class func setUp() {
Log.logger = HeliumLogger(.debug)
}
}
然后,您可以让您的测试类继承自LoggingTestCase
而不是XCTestCase
.
这应该适用于 macOS 和 Linux。
推荐阅读
- ios - plist xamarin.ios 的 AppLoader 问题
- php - 从脚本文件夹外部访问图像文件的问题
- c# - 如何使用 IronOCR 从目录而不是单个文件中读取?
- swift - UIView Swift 4中的边框底部
- javascript - JavaScript 和 jQuery 中的变量值不显示
- flutter - 横幅广告重叠的颤振问题
- javascript - 抽象客户端
- python - 注释熊猫中堆叠水平条的值
- java - 如何从 Android 将文件上传到 Node.js 服务器
- javascript - Javascript onmouseover 背景图像更改