Я использую spoon-gradle-plugin от Романа Мазура. Я могу запускать все тесты одновременно, но у меня возникают проблемы с указанием «группы» тестов, которые я хотел бы запустить. В настоящее время моя установка ложки выглядит так:
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, который должен иметь возможность редактировать некоторые свойства в ложке.
Как я вижу, на основном гите ложки написано, что можно указать пакет, где ложка-раннер следует искать ваши тесты, и пример выглядит так:
--e package=com.mypackage.unit_tests
Итак, моя идея состояла в том, чтобы поместить это свойство в toolsationArgs. Следовательно, я создал свои задачи с ложкой следующим образом:
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 прекрасно расширяет конфигурацию ложки по умолчанию, предотвращая создание GIF-файлов. Таким образом, toolsationArgs наверняка берет мой строковый массив, но не применяет изменения, потому что в моем терминале:
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
Независимо от того, что я делаю со свойством «пакет», я всегда получаю результат:
-e package com.myapp.instrumentation.flowtests
И я хочу изменить его, но не знаю, как. Кроме того, я могу сказать, что я пытался найти в своем проекте строку «com.myapp.instrumentation.flowtests», и единственными местами, где она используется, являются: тесты в пакете + задачи gradle, представленные выше. Так что это нигде не жестко запрограммировано. То же место выбирается, если я запускаю тесты:
./gradlew spoon
И после того, как я использую:
./gradlew spoonAuthFlowTests
Он также запускает весь набор тестов.