AppCenter-Test-XCUITest-Extensions

Extension library to run XCUITest on Visual Studio App Center

  • Owner: microsoft/AppCenter-Test-XCUITest-Extensions
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Visual Studio App Center XCUITest Extensions

Carthage compatible

AppCenterXCUITestExtensions is an iOS Framework for taking screenshots
and labeling test steps when running XCUITest test in Visual Studio App Center
or Xamarin Test Cloud. At the conclusion of each test method, a label and
screenshot are automatically generated for the test report. You can create
additional labels and screenshots to track your app's progress during a test
method.

Update

This framework has been deprecated.

This framework is not compatibible with Xcode >= 10.2.

This framework is no longer required for running XCUITests in Visual Studio
App Center.

Users need to migrate their tests to use Apple's
XCTContext runActivityNamed:block API.

- (void)testFavoriteSongs {
  [XCTContext runActivityNamed:@"Then I touch the Library tab" block:^(id<XCTActivity>
                                                                      _Nonnull activity) {
    // Gestures always generate a screenshot which will appear in your test report.
    [self.app.buttons[@"Library"] tap];
  }];

  [XCTContext runActivityNamed:@"Then I see a list of my favorite songs" block:^(id<XCTActivity>
                                                                                 _Nonnull activity) {
    // Queries do not generate screenshots.
    // Take a screenshot before assertions to make your test report more readable.
    XCUIScreenshot *screenshot = [[XCUIScreen mainScreen] screenshot];
    XCTAttachment *attachment = [XCTAttachment attachmentWithScreenshot:screenshot];
    [attachment setLifetime:XCTAttachmentLifetimeKeepAlways];
    [activity addAttachment:attachment];
    XCTAssertNotNil(self.app.tables[@"favorite Songs"]);
  }];
}

To make test source code readable, we recommend this method to take screenshots:

- (void) addScreenshot:(id<XCTActivity>  _Nonnull ) activity {
  XCUIScreenshot *screenshot = [[XCUIScreen mainScreen] screenshot];
  XCTAttachment *attachment;
  attachment = [XCTAttachment attachmentWithScreenshot:screenshot];
  [attachment setLifetime:XCTAttachmentLifetimeKeepAlways];
  [activity addAttachment:attachment];
}

We recommend inserting screenshots during your tests to make the test report
easier to interrept.

Documentation

Please refer to the official App Center documentation site
for installation and usage for both Visual Studio App Center and Xamarin Test
Cloud.

This repository contains four demonstration apps:

  • Flowers: demonstrates the API.
  • Dido: demonstrates how to the link the framework using Carthage.
  • BeetIt: demonstrates how to link the framework using CocoaPods.
  • StickShift: demonstrates how to manually link the framework.

For a concrete example of submitting an app to App Center see
bin/make/appcenter.sh

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ or
contact opencode@microsoft.com with any additional questions or comments.

Known Issues

Swift + bitcode

If you are building Swift XCUITests, you may encounter a build error
related to bitcode. As a workaround, you can disable bitcode in your
XCUITest target. To do this, go to Build Settings, search for
ENABLE_BITCODE and set the value to NO for the test target. You
should not need to change the setting for the App target.

Overview

Name With Ownermicrosoft/AppCenter-Test-XCUITest-Extensions
Primary LanguageShell
Program languageRuby (Language Count: 5)
Platform
License:MIT License
Release Count1
Last Release Name1.0.0 (Posted on 2017-11-14 13:00:17)
First Release Name1.0.0 (Posted on 2017-11-14 13:00:17)
Created At2017-11-11 11:28:36
Pushed At2022-11-28 19:11:32
Last Commit At2022-11-28 19:11:32
Stargazers Count13
Watchers Count10
Fork Count20
Commits Count139
Has Issues Enabled
Issues Count2
Issue Open Count0
Pull Requests Count8
Pull Requests Open Count2
Pull Requests Close Count0
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top