从iOS中的UITests读取Info.plist?

时间:2017-03-30 13:33:34

标签: ios swift ui-testing

在UITesting中,是否可以从Info.plist文件夹中读取UITests文件夹中的文件?如果是这样,怎么样。

到目前为止,我已经尝试过了:

if let url =  Bundle.main.url(forResource: "Info", withExtension: "plist"),
        let myDict = NSDictionary(contentsOf: url) as? [String:Any] {
        print(myDict)
    }

虽然,这会返回一些plist,这不是我在主项目文件夹中的事件。

1 个答案:

答案 0 :(得分:6)

您的测试类有一个特殊的包,您需要阅读(或注入)。试试吧。将以下OSTests调用中的Bundle(for:)替换为您的XCTestCase子类的名称。

  func testExample() {
    let testBundle = Bundle(for: OSTests.self)
    if let url = testBundle.url(forResource: "Info", withExtension: "plist"),
      let myDict = NSDictionary(contentsOf: url) as? [String:Any] {
      print(myDict)
    }
  }

然后,您需要确保将测试包复制到测试应用程序中。选择您的测试目标。在Build Phases选项卡中公开Copy Bundle Resources部分。单击+图标并选择测试目标的Info.plist文件。

enter image description here

以下是我的结果。 enter image description here