Как вызвать глобальную настройку для всех тестов в пакете swift?

Имея пакет swift, я хочу выполнить глобальную настройку (в основном настроить ведение журнала для всех тестов) перед началом тестов. Удивительно, но это легко в Linux, где код может быть добавлен в allTests

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

но я понятия не имею, как это сделать на macOS. Любые намеки приветствуются.

1 ответ

Вы могли бы подкласс XCTest и переопределить setUp, который вызывается перед выполнением тестов, следующим образом:

import XCTest
import LoggerAPI
import HeliumLogger

class LoggingTestCase: XCTestCase {

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

Затем вы можете заставить свои тестовые классы наследовать от LoggingTestCase вместо XCTestCase,

Это должно работать как на MacOS, так и на Linux.

Другие вопросы по тегам