在 XCUITest 中读取本地 JSON 文件
Read local JSON file in XCUITest
我正在为 iOS 应用程序编写 UI 测试。我想从本地 json 文件中读取数据。
我正在使用以下代码获取我的 json 文件的路径:
func testExample() {
readJSON()
}
func readJSON(){
let bundle = Bundle(for:myTestClass.self)
if let path = bundle.url(forResource: "myurl", withExtension: "json"){
print("Got the path")
print(path)
}
else{
print("Invalid filename/path")
}
我已经尝试使用以下 Whosebug 问题的解决方案:
Reading in a JSON File Using Swift。没用!
此外,我还查看了以下 Apple 文档:
https://developer.apple.com/swift/blog/?id=37
如有任何帮助,我们将不胜感激!
这不是您从 iOS
中的 Bundle
读取本地 json 文件的方式。它是通过以下方式完成的:
// "myUrl" is assumed to be your json file name
if let pathStr: String = Bundle.main.path(forResource: "myurl", ofType: ".json") {
print("json path: \(pathStr)")
}
首先,您需要检查.json
文件是否与测试文件在同一个目标中。如果文件在主目标中,则必须使用 Bundle.main
。但是,如果它与您的测试处于同一目标,请使用以下代码。
let t = type(of: self)
let bundle = Bundle(for: t.self)
let path = bundle.path(forResource: "myurl", ofType: "json")
我刚刚发现添加到 XCUITest 目标的资源将放在 Bundle.main.resourcePath + "/PlugIns/<TARGET_NAME>.xctest/"
下。但是,我不确定是否有更好的方法来访问它们而不是硬编码子目录路径。
我正在为 iOS 应用程序编写 UI 测试。我想从本地 json 文件中读取数据。
我正在使用以下代码获取我的 json 文件的路径:
func testExample() {
readJSON()
}
func readJSON(){
let bundle = Bundle(for:myTestClass.self)
if let path = bundle.url(forResource: "myurl", withExtension: "json"){
print("Got the path")
print(path)
}
else{
print("Invalid filename/path")
}
我已经尝试使用以下 Whosebug 问题的解决方案: Reading in a JSON File Using Swift。没用!
此外,我还查看了以下 Apple 文档: https://developer.apple.com/swift/blog/?id=37
如有任何帮助,我们将不胜感激!
这不是您从 iOS
中的 Bundle
读取本地 json 文件的方式。它是通过以下方式完成的:
// "myUrl" is assumed to be your json file name
if let pathStr: String = Bundle.main.path(forResource: "myurl", ofType: ".json") {
print("json path: \(pathStr)")
}
首先,您需要检查.json
文件是否与测试文件在同一个目标中。如果文件在主目标中,则必须使用 Bundle.main
。但是,如果它与您的测试处于同一目标,请使用以下代码。
let t = type(of: self)
let bundle = Bundle(for: t.self)
let path = bundle.path(forResource: "myurl", ofType: "json")
我刚刚发现添加到 XCUITest 目标的资源将放在 Bundle.main.resourcePath + "/PlugIns/<TARGET_NAME>.xctest/"
下。但是,我不确定是否有更好的方法来访问它们而不是硬编码子目录路径。