Swiftpack.co -  PGSSoft/AutoMate-AppBuddy as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
PGSSoft/AutoMate-AppBuddy
iOS UI automation tests helper framework, designed to work with the AutoMate
.package(url: "https://github.com/PGSSoft/AutoMate-AppBuddy.git", from: "1.5.1")
AutoMate, made by PGS Software

AutoMateAppBuddyTemplatesModelGenie

AutoMate AppBuddy

AppBuddy is a helper framework for UI automation tests, designed to work with the AutoMate. It can disable animations in the application and manage events, reminders and contacts.

Swift 5 Travis CocoaPods Compatible Documentation Carthage Compatible Platform License

Installation

CocoaPods

The most convenient way to install it is by using CocoaPods with Podfile:

pod 'AutoMate-AppBuddy'

Carthage

For Carthage Carthage add a line to Cartfile.private:

github "PGSSoft/AutoMate-AppBuddy"

Cartfile.private should be used because AutoMate framework will be used by UI Tests target only not by the tested application.

Swift Package Manager

You can just add AutoMate AppBuddy package to your project by entering it's repository URL

https://github.com/PGSSoft/AutoMate-AppBuddy

Note

AppBuddy should be linked with target application, not with the test target.

Usage

Full documentation is available at https://pgssoft.github.io/AutoMate-AppBuddy/.

  1. Duplicate existing application target.

  2. Import AutoMate_AppBuddy framework to app delegate.

    import AutoMate_AppBuddy
    
  3. Setup LaunchEnvironmentManager in application(_:didFinishLaunchingWithOptions:).

    let launchEnvironmentManager = LaunchEnvironmentManager()
    launchEnvironmentManager.add(handler: defaultEventKitHander, for: .events)
    launchEnvironmentManager.add(handler: defaultEventKitHander, for: .reminders)
    launchEnvironmentManager.add(handler: defaultContactsHander, for: .contacts)
    launchEnvironmentManager.add(handler: defaultIsInUITestHandler, for: .isInUITest)
    launchEnvironmentManager.add(handler: AnimationHandler(), for: .animation)
    launchEnvironmentManager.setup()
    

Features (or ToDo)

  • ☑ Disable UIView animations
  • ☑ Managing events, reminders and contacts
  • ☐ Two way communication
  • ☐ Stubbing network requests
  • ☐ Stubbing contacts, events and reminders
  • ☐ Stubbing notifications
  • ☐ Taking screenshots
  • ☐ Clearing application data
  • ☐ Simulating push notifications

Example application

AutoMate repository contains example application under AutoMateExample directory. Structure of the application is simple, but the project contains extensive suite of UI tests to showcase capabilities of the library.

Development

Full documentation is available at https://pgssoft.github.io/AutoMate-AppBuddy/.

If you want to handle your custom launch environments, you have to implement Handler protocol, e.g.

struct CustomHandler: Handler {
    func handle(key: String, value: String) {
        if value == "production" {

        }
    }
}

launchEnvironmentManager.add(handler: CustomHandler(), for: "SERVER")

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/PGSSoft/AutoMate-AppBuddy.

License

The project is available as open source under the terms of the MIT License.

About

The project maintained by software development agency PGS Software. See our other open-source projects or contact us to develop your product.

Follow us

Twitter URL
Twitter Follow

GitHub

link
Stars: 29
Last commit: 2 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

2 years ago

Released on 2019-07-20.

Updated

  • Updated Ruby dependencies.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API