首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FBSnapshotTestCase不会创建FB_REFERENCE_IMAGE_DIR和IMAGE_DIFF_DIR文件夹

FBSnapshotTestCase不会创建FB_REFERENCE_IMAGE_DIR和IMAGE_DIFF_DIR文件夹
EN

Stack Overflow用户
提问于 2021-08-24 15:46:37
回答 1查看 202关注 0票数 0

这是我的测试:

类ZabiTests: FBSnapshotTestCase {

代码语言:javascript
复制
var vc:UIViewController?
override func setUpWithError() throws {
    super.setUp()
    vc = ViewController()
   recordMode = true
}

override func tearDownWithError() throws {
    // Put teardown code here. This method is called after the invocation of each test method in the class.
}

func testExample() throws {
  FBSnapshotVerifyView((vc?.view)!)
}

func testPerformanceExample() throws {
    // This is an example of a performance test case.
    self.measure {
        // Put the code you want to measure the time of here.
    }
}

}

第一次在recordMode = true的情况下运行,然后在没有此行的情况下运行,仍然得到快照比较失败

(vc是好的,红色背景,而不是nil )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-24 18:06:47

在尝试之后,我创建了另一种自动定义这些文件夹的方法,即创建我自己的基类:

代码语言:javascript
复制
open class MySnapshotTestCase: FBSnapshotTestCase {
  var referenceImageDirectory: String?
  var imageDiffDirectory: String?


  public func verify(
      view: UIView,
      file: StaticString = #file,
      line: UInt = #line
  ) {

    let directory = ("\(file)" as NSString).deletingLastPathComponent

    // Save for later use in getReferenceImageDirectory
    referenceImageDirectory = NSString.path(withComponents: [directory, "ReferenceImages"])

    // Save for later use in getImageDiffDirectory
    imageDiffDirectory = NSString.path(withComponents: [directory, "FailedSnapshotTests"])

    FBSnapshotVerifyView(
        view,
        identifier: nil,
        perPixelTolerance: 0,
        overallTolerance: 0,
        file: file,
        line: line)
  }

  open override func getReferenceImageDirectory(withDefault dir: String?) -> String {
    guard let referenceImageDirectory = referenceImageDirectory else {
      fatalError("Do not call FBSnapshotVerifyView directly, use WazeSnapshotTestCase.verify instead.")
    }
    return referenceImageDirectory
  }

  open override func getImageDiffDirectory(withDefault dir: Swift.String?) -> Swift.String {
    guard let imageDiffDirectory = imageDiffDirectory else {
      fatalError("Do not call FBSnapshotVerifyView directly, use WazeSnapshotTestCase.verify instead.")
    }
    
    return imageDiffDirectory
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68910336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档