将 CSV 文件传递给 Swift 2 文件以进行 UI 自动化测试



嗨,我是 swift 和 Xcode 工具的绝对初学者。我正在尝试通过 Xcode 7+ 引入的 UI 测试包来测试应用程序。我想将我的硬编码数据从脚本迁移到 cvs 文件。请帮忙。

目前我已经创建了一个类 csvScanner,但它在下面的代码中显示参数标签(内容文件:,编码:,错误)错误

进口基金会

类 CSVScanner {

class func debug(string:String){
    print("CSVScanner: (string)")
}
class func runFunctionOnRowsFromFile(theColumnNames:Array<String>, withFileName theFileName:String, withFunction theFunction:(Dictionary<String, String>)->()) {
    if let strBundle = NSBundle.mainBundle().pathForResource(theFileName, ofType: "csv") {
        var encodingError:NSError? = nil
        if let fileObject = NSString(contentsOfFile: strBundle, encoding: NSUTF8StringEncoding, error: &encodingError){
            var fileObjectCleaned = fileObject.stringByReplacingOccurrencesOfString("r", withString: "n")
            fileObjectCleaned = fileObjectCleaned.stringByReplacingOccurrencesOfString("nn", withString: "n")
            let objectArray = fileObjectCleaned.componentsSeparatedByString("n")
            for anObjectRow in objectArray {
                let objectColumns = anObjectRow.componentsSeparatedByString(",")
                var aDictionaryEntry = Dictionary<String, String>()
                var columnIndex = 0
                for anObjectColumn in objectColumns {
                    aDictionaryEntry[theColumnNames[columnIndex]] = anObjectColumn.stringByReplacingOccurrencesOfString(""", withString: "", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)
                    columnIndex++
                }
                if aDictionaryEntry.count>1{
                    theFunction(aDictionaryEntry)
                }else{
                    CSVScanner.debug("No data extracted from row: (anObjectRow) -> (objectColumns)")
                }
            }
        }else{
            CSVScanner.debug("Unable to load csv file from path: (strBundle)")
            if let errorString = encodingError?.description {
                CSVScanner.debug("Received encoding error: (errorString)")
            }
        }
    }else{
        CSVScanner.debug("Unable to get path to csv file: (theFileName).csv")
    }
}

}

提前致谢

如果您使用的是 Xcode 7+,那么您也在使用 Swift 2。 您需要使用 try 而不是将错误指针传递给该方法。

方法签名已更改为 convenience init(contentsOfFile path: String, encoding enc: UInt) throws

(注:无error:

最新更新