在测试目标中包含资产目录

Enr*_*tyo 10 xcode xctest asset-catalog

在我的一个XCTests课程中,我需要从资产目录中加载图像以测试图像处理逻辑.但是,似乎在测试目标中使用了UIImage(named: "imageName")返回nil.

我在我的资产目录中检查了测试目标成员资格,我还应该做些什么来启用从我的XCTest类中读取图像?

gar*_*rie 7

@mylovemhz的答案是正确但不完整的.您需要引用该包:

斯威夫特3:

UIImage(named: "imageName", in: Bundle(for: MyTestClass.self), compatibleWith: nil)
Run Code Online (Sandbox Code Playgroud)

还要确保您的资产与测试类包含在同一目标中.


myl*_*mhz 3

根据文档,您必须在运行时添加它们。

\n\n
\n

如果您的测试使用资产\xe2\x80\x94数据文件、图像等\xe2\x80\x94,则可以将它们添加到测试包中并在运行时使用 NSBundle\n API 进行访问。与您的测试类一起使用+[NSBundle bundleForClass:]可确保您获得正确的包来检索资产。有关详细信息,请参阅NSBundle 类参考

\n
\n\n

在 Swift 中,它会是这样的:

\n\n
let appBundle = Bundle(for: type(of: MyClass) as! AnyClass)\n
Run Code Online (Sandbox Code Playgroud)\n