uber / ios-snapshot-test-case

Snapshot view unit tests for iOS
MIT License
1.79k stars 211 forks source link

[Feature Request] When run in RecordMode can we NOT XCFail the test (for example, use XCTExpectFailure)? #159

Open appleios opened 3 years ago

appleios commented 3 years ago

Background

I created a script for our team that runs snapshot tests in record mode for iPhone/iPad with correctly selected devices and IOS version. But when FBSnapshotTestCase runs in record mode we hit the assert:

      assert(recordMode == false, message: "Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!", file: file, line: line)

Which leads the whole Xcodebuild exiting with error code 65 with lots of red error lines.

When run using Xcode it is not a problem and is actually convenient (you can see which test were recorder). But when run for recording in one go - the output is too noisy.

Feature Request

Can we add a property shouldFailInRecordMode to the FBSnapshotTestCase so in SwiftSupport.swift the assert will change to:

      assert(!(recordMode && shouldFailInRecordMode), message: "Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!", file: file, line: line)