Мне нужно запустить интеграционные тесты для библиотеки Android, которая использует собственный код через JNI. Это имеет несколько значений:
- Это библиотека, и поэтому GUI в ней нет вообще. Это означает, что тестовые фреймворки, такие как Espresso, Appium и им подобные, бесполезны, поскольку нет GUI, с которым можно было бы тестировать.
- Это дает мне некоторые проблемы с популярными облачными сервисами, такими как App Center и Firebase Test Lab, поскольку они требуют как инструментальный тестовый APK пользовательского интерфейса, написанный с помощью одной из поддерживаемых платформ тестирования пользовательского интерфейса, так и apk приложения для запуска этих тестов.
- Как уже говорилось, библиотека содержит C кода, загруженного через JNI. К сожалению, это исключает возможность использования Robolectri c, поскольку он не поддерживает JNI.
Теперь есть несколько вопросов:
- Есть ли Android фреймворки имитационного тестирования, поддерживающие JNI?
- Есть ли облачный сервис, который позволяет мне просто запускать предварительно созданный Android инструментальный APK модульных тестов без какой-либо инструментальной тестовой среды UI и без фактического приложение для тестирования?
- Пропустил ли я гораздо более простое решение моей проблемы?
Проблема с облачными сервисами заключается в том, что в настоящее время у меня есть только инструментальный APK модульного тестирования, который, как GUI такое тестирование не имеет. Кроме того, это единственный apk, который у меня есть, так как реального приложения Android для тестирования нет.
Мне не известны какие-либо тестовые фреймворки Android, такие как Robolectri c, которые поддерживают JNI, именно поэтому я в первую очередь изучаю инструментальные тесты на реальных или эмулированных Android устройствах.