Skip to main content

Changelog

XCTest

5.0.2 (Nov 28, 2024)

Bug Fixes

  • Ignored regions are now correctly identified on non-scrolling screens

  • Resolved failure of Target.window() in unit tests without a key window

5.0.1 (Nov 21, 2024)

Bug Fixes

  • Test names now default to a same name for all tests using the new eyes.test() API

  • The waitBeforeCapture check setting is now correctly applied

  • Resolved the issue with empty images loading on the first page of full-page screenshots

5.0.0 (Nov 19, 2024)

NEW MAJOR VERSION

The SDK has been expanded with new capabilities. The SDK can now take full page screenshots from user interface objects in XCTest unit or integration tests.

New Features

  • The SDK can now take full page screenshots from user interface objects in XCTest unit or integration tests, using one of the following:

    • try await eyes.check(withTag:"my tag" andSettings: Target.window())
      (see notes 1 and 2)

    • try await eyes.test(settings:Target.window())
      This method is convenient for single open-check-close operations (see note 3).

Additional Features

  • Set ignored regions from UIView elements:
    Target.window.ignore([someView, someOtherView])

  • Other supported coded regions:
    .layout(), .strict(), .content()

  • Device-independent baselines:
    Run tests from any device (or simulator) and validate screenshots against a single baseline (see note 4).

Notes:

  1. The new Target.window() API performs asynchronous screenshots on the main UI thread. Invoking test functions must be annotated with @MainActor and async throws.

  2. Screenshots are full page by default.

    • To force a viewport screenshot, use Target.window().fully(false) in the check settings of a single test.
    • To force viewport for all tests, set forceFullPageScreenshot = false on the Eyes Configuration object.
  3. The new Eyes.test() API method conveniently opens, checks, and closes Eyes, with default names.

    • App and test names default to (respectively) the app bundle name and the test function name.
    • To customize names, invoke Eyes.test() with optional parameters applicationName, testName, and/or tag.
  4. By default, screenshots may vary according to the source device (or simulator) that runs the test. To enable device-independent baselines from any source device, normalize the baseline on a single target device size by adding a specific target device on the Eyes Configuration object. Example:
    configuration.addMultiDeviceTarget(IosMultiDeviceTarget.iPhone12())

Changed

  • Eyes.close() now returns a TestResultsSummary object. (In previous versions of this SDK, this API returned a TestResult object).

4.15.0 (Oct 13, 2024)

Features

  • The SDK now requires iOS 13 or later

4.14.2 (June 10, 2024)

Bug Fixes

  • Resolved issue with empty test results.

4.14.1 (May 30, 2024)

Bug Fixes

  • Resolved issue with non-integer viewport size.

4.14.0 (May 28, 2024)

Features

  • You can now pass branch names from GIT in environment variables.

Bug Fixes

  • Fixed time zone formatting issues in batch requests.

4.13.1 (May 13, 2024)

Bug Fixes

  • Resolved issue with trailing "/" in serverURL.

4.13.0 (May 9, 2024)

Feature

  • Added support for visionOS.

4.12.0 (Feb 29, 2024)

Feature

  • Added support for the following APIs: Eyes.getAllTestResults, Eyes.closeAndGetResults, Eyes.setMobileCapabilities

4.11.1 (Jan 30, 2024)

Bug Fixes

  • Resolved issue with system fail if the system time format is set to 12-hour.