Skip to content

Instantly share code, notes, and snippets.

./gradlew connectedFlavor2DebugAndroidTest \
-Pandroid.testInstrumentationRunnerArguments.class=my.package.MainActivityTest#test2,my.package.MainActivityTest#test3
./gradlew connectedFlavor1DebugAndroidTest \
-Pandroid.testInstrumentationRunnerArguments.class=my.package.MainActivityTest#test1,my.package.MainActivityTest#test2
@zawadz88
zawadz88 / BrandFilter.kt
Last active February 14, 2018 19:52
Multi-flavored UI test filtering
package com.stepstone.base.test.runner.filter
import android.os.Bundle
import com.stepstone.base.BuildConfig
import com.stepstone.base.test.runner.annotation.TestFilter
import org.junit.runner.Description
import timber.log.Timber
/**
@zawadz88
zawadz88 / ParentFilter.kt
Created February 15, 2018 16:42
Parent filter copied from Android Support test library
package com.stepstone.base.test.runner.filter
import org.junit.runner.Description
import org.junit.runner.manipulation.Filter
/**
* Helper parent class for [Filter] that allows suites to run if any child matches.
*/
abstract class ParentFilter : Filter() {
@zawadz88
zawadz88 / FlavorFilter.kt
Last active February 15, 2018 17:07
Custom Filter
package com.stepstone.base.test.runner.filter
import android.os.Bundle
import com.stepstone.base.BuildConfig
import com.stepstone.base.test.runner.annotation.TestFilter
import org.junit.runner.Description
import timber.log.Timber
/**
@zawadz88
zawadz88 / MyAndroidJUnitRunner.java
Last active February 15, 2018 17:09
Custom runner using our custom Filter
package com.stepstone.base.test.runner;
import android.os.Bundle;
import android.support.test.runner.AndroidJUnitRunner;
import com.stepstone.base.test.runner.filter.FlavorFilter;
public class MyAndroidJUnitRunner extends AndroidJUnitRunner {
android {
defaultConfig {
...
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
testOptions {
execution 'ANDROID_TEST_ORCHESTRATOR'
}
}
adb shell 'CLASSPATH=$(pm path android.support.test.services) app_process / \
android.support.test.services.shellexecutor.ShellMain am instrument -w -e -v \
targetInstrumentation com.foo.bar/android.support.test.runner.AndroidJUnitRunner \
android.support.test.orchestrator/.AndroidTestOrchestrator'
02/26 17:18:09: Launching All Tests
$ adb push .../build/outputs/apk/debug/app-debug.apk /data/local/tmp/com.foo.bar
$ adb shell pm install -t -r "/data/local/tmp/com.foo.bar"
Success
$ adb push .../build/outputs/apk/androidTest/debug/app-debug-androidTest.apk /data/local/tmp/com.foo.bar.test
$ adb shell pm install -t -r "/data/local/tmp/com.foo.bar.test"
Success
$ adb push /Users/piotr/.gradle/caches/modules-2/files-2.1/com.android.support.test/orchestrator/1.0.1/12d61be26b643c6413d207248660bce8f6d8b236/orchestrator-1.0.1.apk /data/local/tmp/android.support.test.orchestrator
$ adb shell pm install -t -r "/data/local/tmp/android.support.test.orchestrator"
Success
android {
defaultConfig {
...
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
...
}