Automatically Running a Test Case Many Times in Xcode

ios, xcode, xctest

Solution

It took 7 years, but as of Xcode 13, support for test repetition is now built-in.

From the Xcode 13 release notes:

Enable test repetition in your test plan, `xcodebuild`, or by running your test from the test diamond by Control-clicking and selecting Run Repeatedly to bring up the test repetition dialog.

Problem

In Xcode, is there a way for me run a single test case n times automatically? Reason for doing this is that some of my beta testers are encountering random crashes in my app. I see the crash logs in TestFlight, along with the stack trace, but I can't reproduce the crash. The crash happens infrequently but when it does, it always happens when users are trying to create a DB record, which then gets uploaded to a server. The problem with the crash logs is that my code does not make an appearance in their stack traces (all UIKit & CoreFoundation stuff - and different each time). My solution is to run the test for that part of the app 100s of times, with the exception breakpoint set, to try to trigger the bug in my dev environment. But I don't know how to do this automatically.

Original source

Related problems