This will cause screenshots to be exported like so:
Options can be added & remove to change the folder structure used for export. Using no options will lead to all attachments being exported into the output directory.
Options available include:
Option
Description
--model
Divide by test target model
--os
Divide by test target operating system
--test-plan-config
Divide by test run configuration
--language
Divide by test language
--region
Divide by test region
--test
Divide by test
See xcparse screenshots --help for a full-listing
Test Status
The --test-status option can allow for whitelisting only screenshots from tests that have a status that matches at least one of the provided status strings
Examples
Description
--test-status Success
Passing tests only
--test-status Failure
Failing tests only
--test-status Success Failure
Passing or failing tests only
Test status strings can be found by using verbose mode with the screenshots sub-command.
Activity Type
The --activity-type option allows for whitelisting screenshots whose activity type matches at least one of the provided activity type strings.
Note that when an activity type string is provided which doesn’t have a reverse-DNS style domain, it is assumed to be of com.apple.dt.xctest.activity-type.<activityTypeString> and the domain is automatically added.
Therefore, these two are option calls are equivalent:
Export all attachments in the xcresult that conform to either the public.plan-text or the public.image uniform type identifiers (UTI). The screenshots command, for example, is actually just the attachments command operating a whitelist for public.image UTI attachments. Other common types in xcresults are public.plain-text for debug descriptions of test failures.
This will export a JSON representation of the given App Thinning Size Report to the output directory.
Flag Variants
The --flag-variants option can allow for the generation of an app size violations report with all the app variants that exceed the specified size limit.
Examples
Description
--flag-variants 10MB
Flags variants that exceed 10MB
--flag-variants 13
Flags variants that exceed 13MB
--flag-variants invalid
Flags variants that exceed 10MB
If a size unit is not specified, the default unit is considered to be megabytes. Similarly, invalid arguments cause a default size limit of 10MB to be used for flagging app size violations.
Help
xcparse --help
xcparse screenshots --help
Learn about all the options we didn’t mention with --help!
xcparse
A command line tool to extract code coverage & screenshots from Xcode 11 XCResult files.
To learn more about Xcode 11’s xcresult format, read Rishab Sukumar’s post on the ChargePoint Engineering blog
Installation
Homebrew
Enter the following command into your terminal:
This will tap into our xcparse Homebrew tap and install the tool on your local machine.
Mint
To use xcparse via Mint, prefix the normal usage with mint run ChargePoint/xcparse like so:
To use a specific version of xcparse, add the release tag like so:
Bitrise
Want to use this in Bitrise? We have an xcparse Bitrise step available in the Bitrise StepLib so you can add xcparse directly from the Bitrise Workflow UI!
See our Bitrise step’s README for more information.
Usage
Below are a few examples of common commands. For further assistance, use the –help option on any command
Screenshots
This will cause screenshots to be exported like so:
Options can be added & remove to change the folder structure used for export. Using no options will lead to all attachments being exported into the output directory.
Options available include:
--model
--os
--test-plan-config
--language
--region
--test
See
xcparse screenshots --help
for a full-listingTest Status
The
--test-status
option can allow for whitelisting only screenshots from tests that have a status that matches at least one of the provided status strings--test-status Success
--test-status Failure
--test-status Success Failure
Test status strings can be found by using verbose mode with the screenshots sub-command.
Activity Type
The
--activity-type
option allows for whitelisting screenshots whose activity type matches at least one of the provided activity type strings.--activity-type com.apple.dt.xctest.activity-type.testAssertionFailure
--activity-type attachmentContainer userCreated
Note that when an activity type string is provided which doesn’t have a reverse-DNS style domain, it is assumed to be of
com.apple.dt.xctest.activity-type.<activityTypeString>
and the domain is automatically added.Therefore, these two are option calls are equivalent:
--activity-type userCreated attachmentContainer
--activity-type com.apple.dt.xctest.activity-type.userCreated com.apple.dt.xctest.activity-type.attachmentContainer
Activity types can be found in verbose mode. Below are a listing of common ones:
Attachments
Export all attachments in the xcresult that conform to either the
public.plan-text
or thepublic.image
uniform type identifiers (UTI). The screenshots command, for example, is actually just the attachments command operating a whitelist forpublic.image
UTI attachments. Other common types in xcresults arepublic.plain-text
for debug descriptions of test failures.Read this Apple documentation for a list of publicly documented UTIs.
Code Coverage
This will export the action.xccovreport & action.xccovarchive into your output directory.
Logs
This will export logs & diagnostic files into a per-action folder structure similar to Xcode 10’s xcresult format.
Convert
This will export a JSON representation of the given App Thinning Size Report to the output directory.
Flag Variants
The
--flag-variants
option can allow for the generation of an app size violations report with all the app variants that exceed the specified size limit.--flag-variants 10MB
--flag-variants 13
--flag-variants invalid
If a size unit is not specified, the default unit is considered to be megabytes. Similarly, invalid arguments cause a default size limit of 10MB to be used for flagging app size violations.
Help
Learn about all the options we didn’t mention with
--help
!