I want to use Fastlane Snapshot in order to generate screenshots for my app. But the behavior of the app is different when launch for the first time and launching after that. How do I manage to get a consistent behavior in order to grab the screenshots? (this question is also relevant for any UI test desired consistency I presume)
Distinguishing first launch on UI Tests
466 Views Asked by gerbil At
1
There are 1 best solutions below
Related Questions in XCODE-UI-TESTING
- XCTest UI Record and Play - Simulator not updating UI
- Xcode 7 UI test cases for pre Xcode 7 projects
- Include an Xcode 7 UI testing dependency via Cocoapods?
- Documentation for UI Testing in XCode 7
- Using Xcode7's UI tests to create app screenshots for the App Store
- Can't include Objective-C .framework in Xcode 7 UI test target?
- iOS app not responding while UI recording
- Connecting external framework to UI unit testing target, iOS
- MKAnnotation via XCTest UI Testing
- UIImage returns nil in UITests
- Button in UITableView hierarchy UITest
- UITesting with Multiple XCTestCase Class
- Running Xcodes UITesting on Jenkins never fails a Test
- create UI Test in Xcode 8 via terminal
- How can I change the time required to get a snapshot in Xcode UI Test (XCUITest)?
Related Questions in FASTLANE-SNAPSHOT
- Fastlane Screenshots are not saved but also throws no error
- Clarification: Can I use the fastlane snapshots without the Test target
- How to correctly UITest an application with UIImagePickerController (or any other native VC)
- Distinguishing first launch on UI Tests
- Localized Strings are always in English in UITests (Snapshot)
- Xcode crashes when trying to make a UI test that involves a webview
- Getting error while taking the Screenshots using fastlane
- Fastlane / Snapshot - how do I keep all debug / console logs?
- I am getting error for the Language Setting in fastlane when i trying to capture screenshots using Screengrab
- Restrict fastlane snapshot to iPhone devices
- Device 'iPad Pro (12.9-inch) (2nd generation)' not in list of available simulators
- Xcode UI tests, development language, fallback translation and CI servers
- Fastlane storing screenshots AND test reports
- Trying to automate allowing push notifications in UI test and UI interruption monitor does not trigger
- When using fastlane frameit for screenshots, how do you stack the title and keyword text?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You should be using
UserDefaultsclass to preserve data in your app so that you can stub data in your tests.If we assume that the Bool key you use to see if it's the first launch is
isFirstTime, in order to stub it in your UI test, you should pass it tolaunchArgumentsfollowing the valueYESorNO(for Bool values). Note that I added-sign before key, this is the way it works:For tests where you'd like to have first start skipped, use this class:
One note though: If you are using SwiftyUserDefaults library, this solution wouldn't work. There is a problem in the current version of the library where converting
YESandNOstrings totrueandfalseis not working as expected. There was a PR that solved this problem (that is rejected), but to solve this problem, you can look at the solutions #2 and #3 from this answer.