Spoon
- Running Espresso Tests in Parallel (that are visible via adb devices)
- по результатам тестирования создается файл html
- делает скрины, группирует их по устрйостам, и копирует в папку
Источники
- https://square.github.io/spoon/
- https://github.com/square/spoon
- https://github.com/jaredsburrows/gradle-spoon-plugin
Статьи
https://labs.eleks.com/2014/05/creating-test-reports-for-android-with-spoon-and-emma.html
https://medium.com/android-bits/running-espresso-tests-on-multiple-devices-with-spoon-842a5546e3d7
Подключение к проекту
создаем новую ветку git - spoon-testing
0) add plugin
plugins {
id 'com.jaredsburrows.spoon'
}
1 ) add dependencies to module-level build.gradle
file:
androidTestImplementation "com.squareup.spoon:spoon-client:2.0.0-SNAPSHOT"
2) add dependencies for project level build.gradle
file
buildscript {
repositories {
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
dependencies {
classpath "com.jaredsburrows:gradle-spoon-plugin:1.4.0"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
}
3) android manifest - add external storage permissions to take screenshot
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
4) sync grale files
5) run ‘ spoonDebugAndroidTest ‘
6) папка где лежат сгенерированые файлы (смотрим в логах - очень хорошо написаны)
app-name\app\build\spoon-output
7) чтобы делать скрины toast and dialog использовать библиотеку
https://github.com/jraska/Falcon
Gradle
androidTestImplementation 'com.jraska:falcon:2.1.1'
androidTestImplementation 'com.jraska:falcon-spoon-compat:2.1.1'
####
Примеры
https://github.com/faruktoptas/espresso-robot-pattern-sampleplaid
https://github.com/alexilyenko/SimpleAndroidCalculator
Где использовала
- Read trainer - куча ебли, с приятным результатом
=====
Похожие библиотеки
https://docs.fastlane.tools/actions/screengrab/
для создания скриншотов в разных locale, на разных устройствах