【问题标题】:Including Asset Catalogue in Test Targets在测试目标中包含资产目录
【发布时间】:2017-05-05 06:03:49
【问题描述】:

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

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

【问题讨论】:

    标签: xcode xctest asset-catalog


    【解决方案1】:

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

    如果您的测试使用资产(数据文件、图像等),它们可以 添加到测试包并在运行时使用 NSBundle 访问 蜜蜂。将+[NSBundle bundleForClass:] 与您的测试类一起使用可确保 您获得正确的捆绑包以检索资产。更多 信息,请参阅NSBundle Class Reference

    在 Swift 中,它会是这样的:

    let appBundle = Bundle(for: type(of: MyClass) as! AnyClass)
    

    【讨论】:

      【解决方案2】:

      @mylovemhz 的回答是正确但不完整。您需要引用捆绑包:

      斯威夫特 3:

      UIImage(named: "imageName", in: Bundle(for: MyTestClass.self), compatibleWith: nil)
      

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

      【讨论】:

      • 我无法让类似的功能与NSImage (macOS) 一起使用。
      • 你能把这个答案也转移到objective-c吗?
      猜你喜欢
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 2015-11-07
      相关资源
      最近更新 更多