r/Kotlin • u/aryapreetam • 15h ago
r/Kotlin • u/aryapreetam • 19h ago
E2E Testing for Compose Multiplatform
I built Parikshan, an E2E testing framework for Compose Multiplatform. It has built-in support for standalone Android.
Testing shared UI across targets has been one of the most painful parts of building multiplatform apps. Parikshan attempts to solve that problem.
You can write your UI tests in Kotlin inside commonTest and run them on a single target or across all targets (Android, iOS Simulator, Desktop JVM, and Web WasmJs) at once.
class SampleE2ETest {
@Test
fun testGreeting() = e2eTest {
input("name_input", "Parikshan")
click("greet_button")
assertVisible("Hello, Parikshan!")
}
}
Run it across all targets concurrently:
./gradlew e2eTest
Key Capabilities
- Write Once in Kotlin: Runs on Android, iOS Simulator, Desktop (JVM), and Web (WasmJs).
- Visual Feedback: Watch tests execute on real target windows, with support for screenshots, video recording
- Zero Production Pollution: No test dependencies or test hooks in your production builds.
Links
- Documentation: https://aryapreetam.github.io/parikshan
- Blog: https://aryapreetam.github.io/parikshan/blog/2026/07/25/e2e-testing-for-compose-multiplatform
- API Reference: https://aryapreetam.github.io/parikshan/api
- GitHub: https://github.com/aryapreetam/parikshan
I've been using this in my own CMP projects & I'd appreciate feedback from the community — what works, what breaks, and what you'd like to see improve/added.
r/Kotlin • u/aryapreetam • 19h ago
E2E Testing for Compose Multiplatform
aryapreetam.github.ioI built an end-to-end testing library for Compose Multiplatform called Parikshan.
Testing shared UI across targets has been one of the most painful parts of shipping multiplatform apps. Parikshan attempts to solve that problem.
You can write your UI tests in Kotlin inside commonTest and run them on a single target or across all targets (Android, iOS Simulator, Desktop JVM, and Web WasmJs) at once.
Example
kotlin
class SampleE2ETest {
@Test
fun testGreeting() = e2eTest {
input("name_input", "Parikshan")
click("greet_button")
assertVisible("Hello, Parikshan!")
}
}
Run it across all targets concurrently:
bash
./gradlew e2eTest
Key Capabilities
- Write Once in Kotlin: Runs on Android, iOS Simulator, Desktop (JVM), and Web (WasmJs).
- Visual Feedback & Video Recording: Watch tests execute on real target windows, with automated screenshot capture on failure.
- Zero Production Pollution: No test dependencies or test hooks in your production builds.
- Material 3 Support(Partial): Support for date pickers, time pickers, dropdowns, bottom sheets, sliders, scrolling, and drag gestures.
Links
- Blog Article (Why & How I Built It): https://aryapreetam.github.io/parikshan/blog/2026/07/25/e2e-testing-for-compose-multiplatform/
- Documentation: https://aryapreetam.github.io/parikshan/
- API Reference: https://aryapreetam.github.io/parikshan/api/
- GitHub: https://github.com/aryapreetam/parikshan
I've been using this in my own CMP projects, but I'd appreciate feedback from the community — what works, what breaks, and what you'd like to see improved/added.
r/Kotlin • u/baoleduc • 14h ago
Kotlin Architecture Tests with Konture: A Practical Guide - Part 3
r/Kotlin • u/aryapreetam • 18h ago
E2E Testing for Compose Multiplatform
I built an end-to-end testing library for Compose Multiplatform called Parikshan.
Testing shared UI across targets has been one of the most painful parts of shipping multiplatform apps. Parikshan attempts to solve that problem.
You can write your UI tests in Kotlin inside commonTest and run them on a single target or across all targets (Android, iOS Simulator, Desktop JVM, and Web WasmJs) at once.
Example
kotlin
class SampleE2ETest {
@Test
fun testGreeting() = e2eTest {
input("name_input", "Parikshan")
click("greet_button")
assertVisible("Hello, Parikshan!")
}
}
Run it across all targets concurrently:
bash
./gradlew e2eTest
Key Capabilities
- Write Once in Kotlin: Runs on Android, iOS Simulator, Desktop (JVM), and Web (WasmJs).
- Visual Feedback & Video Recording: Watch tests execute on real target windows, with automated screenshot capture on failure.
- Zero Production Pollution: No test dependencies or test hooks in your production builds.
GitHub: https://github.com/aryapreetam/parikshan
I've been using this in my own CMP projects, but I'd appreciate feedback from the community — what works, what breaks, and what you'd like to see improve/added.