Kotlin Multiplatform based testing framework for Android and iOS
Kuiks is a framework for automated UI tests. It uses Kotlin Multiplatform to create common interface for Espresso and XCTest's UI invocations.
You could say it is similar to Appium, as the end goal is the same - write tests for many platforms, once. But, Appium relies on WebDriver protocol to provide run-time invocations on chosen UI testing drivers (as of now, by default Espresso on Android and XCUITest on iOS).
Kuiks, thanks to Kotlin Multiplatform, provides compile time bridge to the same native UI drivers, and it does not use WebDriver protocol, or any other HTTP protocol, proxies or servers in between. Meaning, you can run your tests directly from your IDE.
Kuiks is still in an early development phase, and can change a lot. The goal is to have the most reliable, and fastest UI tests possible. With current implementation it is possible to test (or try to) anything that Espresso and XCUITest can test, which are Android, iOS, tvOS, and macOS apps. Currently development is focused on iOS and Android apps, as having similar apps for those platforms is most common.
Artifacts are not yet published to any Maven repository. This can and will happen, if there is anyone interested. Feel free to open an issue if you need it.
Clone the repo first. The samples contain simple button and lists. RecyclerView on Android, and UITableViewController on iOS. There are also tests using those UI elements.
sample-android
project.InheritedTests
, InstrumentedTests
or TestsFactoryTests
.As with anything that is used for development for Apple's devices, you need to do it on macOS.
xcode-select -p
is not used to set Xcode's installation path before invoking compilation. Not sure yet how it would even work for published libraries.)sample-ios/SampleiOS.xcodeproj
project.SampleiOS
scheme. SampleiOSUITests
uses a custom DelegatingTestBase
to run tests from sharedTests.TextExample
class.Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update samples and tests as appropriate.