UserDefaults无法在Linux上运行

时间:2017-11-14 03:06:17

标签: swift linux nsuserdefaults xctest

在Linux上运行时,

UserDefaults似乎无法在XCTest中运行。我正在运行以下测试但userDefaults.string(forKey: "key")在Linux上返回nil时,在macOS上它返回正确的值并传递。

我正在使用Docker在Linux上执行测试。我的Dockerfile如下:

FROM swiftdocker/swift

WORKDIR /package

COPY . ./

RUN swift package resolve
RUN swift package clean
RUN swift test --parallel

测试文件:

import XCTest

class UserDefaultsTests: XCTestCase {

    func testUserDefaults() {

        let userDefaults = UserDefaults.standard

        userDefaults.set("value", forKey: "key")

        _ = userDefaults.synchronize()

        XCTAssertEqual(userDefaults.string(forKey: "key"), "value") //nil is not equal to "value"
    }

    static var allTests = [
        ("testUserDefaults", testUserDefaults)
    ]
}

UserDefaults似乎是implemented in Swift Core Libs here,可以在Linux上使用,所以我不确定为什么它不起作用。

0 个答案:

没有答案