Я использую spoon-gradle-plugin от Roman Mazur. Я могу одновременно запускать все тесты, но мне трудно указать «группу» тестов, которые я хотел бы запустить. В настоящее время моя установка ложка выглядит следующим образом:Выполнение контрольно-измерительных тестов с конкретной упаковки через плагин с ложкой-градиентом
spoon {
debug = true
baseOutputDir = file("$buildDir/spoon-log")
if (project.hasProperty('spoonClassName')) {
className = project.spoonClassName
if (project.hasProperty('spoonMethodName')) {
methodName = project.spoonMethodName
}
}
adbTimeout = 60 * 60;
}
Мои тесты расположены в пакетах:
И моя цель состоит в том, чтобы создать отдельные Gradle задачи, которые в зависимости от ложки для запуска тестов из каждого пакет отдельно. Роман дал нам параметр instrumentationArgs, который должен быть способен редактировать некоторые свойства внутри ложки.
Как я могу видеть на main git of spoon там написано, что вы можете указать пакет, где ложечки бегун должен искать ваши тесты и пример выглядит, что:
--e package=com.mypackage.unit_tests
Так что моя идея состояла в том, чтобы поместить эту собственность в instrumentationArgs. Поэтому я создал ложку таких задач, как, что:
task spoonAuthFlowTests(type: GradleBuild, dependsOn: ['spoon']) {
spoon {
instrumentationArgs = ["package=com.myapp.instrumentation.flowtests.AuthFlowTests"]
noAnimations = true;
}
}
task spoonFlowTests(type: GradleBuild, dependsOn: ['spoon']) {
spoon {
instrumentationArgs = ["package=com.myapp.instrumentation.flowtests"]
noAnimations = true;
}
}
Что я могу сказать, что параметр noAnimations красиво простирающийся ложка по умолчанию конфигурации, предотвращая гифы от создания. Так instrumentationArgs наверняка принимая мой массив строк, но не применяет изменения, потому что в моем терминале:
2016-01-08 15:13:10 [SDR.run] About to actually run tests for [04ffe19ad317d2e7]
03:13:10 I/RemoteAndroidTest: Running am instrument -w -r -e package com.myapp.instrumentation.flowtests -e class com.myapp.instrumentation.flowtests.AuthFlowTests.LoginUserFlowTests com.myapp.debug1.test/com.myapp.instrumentation.helper.runner.MyAppTestRunner on lge-nexus_4-04ffe19ad317d2e7
Нет Mather, что мне делать с имуществом «пакет», я всегда получаю результат:
-e package com.myapp.instrumentation.flowtests
И я хочу изменить его, но не знаю как. Более того, я могу сказать, что я попытался найти в строке проекта «com.myapp.instrumentation.flowtests» строку и единственные места, где она используется: тесты в пакетах + задачи градации, представленные выше. Так что он нигде не закодирован. То же место определенно, если я начну тесты по:
./gradlew spoon
И после того, как я использую:
./gradlew spoonAuthFlowTests
Он также работает целый набор тестов.