Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在测试期间获取资源路径_Swift_Swift4 - Fatal编程技术网

Swift 在测试期间获取资源路径

Swift 在测试期间获取资源路径,swift,swift4,Swift,Swift4,我正在尝试编写一个单元测试,在我的项目中使用一个文件。在我的应用程序中,我使用FileManager.default.currentDirectoryPath获取文件的路径。然而,当我在测试中使用相同的测试路径时,测试路径是不同的。在阅读了文档之后,我了解到XCode使用不同的路径进行单元测试 我想知道如何在测试中获得File.txt的正确捆绑路径 我尝试过这个,但它返回空值 let testBundle = Bundle(for: type(of: self)) let fileURL = t

我正在尝试编写一个单元测试,在我的项目中使用一个文件。在我的应用程序中,我使用
FileManager.default.currentDirectoryPath
获取文件的路径。然而,当我在测试中使用相同的测试路径时,测试路径是不同的。在阅读了文档之后,我了解到XCode使用不同的路径进行单元测试

我想知道如何在测试中获得
File.txt
的正确捆绑路径

我尝试过这个,但它返回空值

let testBundle = Bundle(for: type(of: self))
let fileURL = testBundle.url(forResource: "File", withExtension: "txt")
下面是我的目录结构。ShopTests是我的单元测试文件,file.txt是我试图为其检索路径url的文件(两者都在图片中突出显示)

以下是我如何在一个有效的测试中做到这一点:

let dataURL = Bundle(for: TripBuilderTest.self).url(forResource: fileName, withExtension: "json")

我想我记得我遇到过和你报道的同样的问题。尝试按照上面的说明使用classname.self。

捆绑包(例如,它应该是模块名还是测试文件名?我尝试了测试文件,它返回num.let dataURL=Bundle(For:ShopTests.self).url(forResource:“file”,扩展名为:“txt”).等等,我想我知道你的问题是什么。给我看看你所有的代码。我想你可能正在试图在测试的顶部创建它?此时测试尚未构建,因此为空。请显示完整的源文件。在我的测试中,我得到的文件在测试本身内部,尽管我相信你可以在安装程序内部将其称为well.我在测试函数中使用了它。在Setup()方法中没有使用它。这就是问题所在。?请稍等,我将在线共享代码。您是否查看以确保文件被复制到测试目标生成的复制包资源中?请尝试
Bundle.main.url(forResource:“file”,扩展名:“txt”)
它返回零。当您将其添加到项目中时,请确保选择“复制到项目”。还要转到目标构建阶段,检查您的文件是否列在“复制包资源”中