Bug 1204565 - Selectively enable unit test based on build variant r=nalexander

DONTBUILD NPOTB

Project specific test filtering is automagically handled by gradle task graph

--HG--
extra : commitid : 2vx7QzGNVUI
extra : rebase_source : 63254386dca7f0aa5c6a5894f7915b2ed50dd65e
This commit is contained in:
vivek 2015-09-15 00:55:49 +03:00
Родитель 8e83932d05
Коммит 6373021e54
1 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -1,3 +1,5 @@
import java.util.regex.Pattern
allprojects { allprojects {
// Expose the per-object-directory configuration to all projects. // Expose the per-object-directory configuration to all projects.
ext { ext {
@ -62,10 +64,15 @@ task generateCodeAndResources(type:Exec) {
// Skip unit test for all build variants, unless if it was specifically requested by user. // Skip unit test for all build variants, unless if it was specifically requested by user.
// The enabled property for the unit test tasks is reset based on the command line task names just before the task execution. // The enabled property for the unit test tasks is reset based on the command line task names just before the task execution.
// I bet there is a easier/cleaner way to do this, but this gets the job done for now. // I bet there is a easier/cleaner way to do this, but this gets the job done for now.
Pattern pattern = Pattern.compile('.*test(.+UnitTest)?.*')
boolean startTasksIncludeTest = gradle.startParameter.taskNames.any {
taskName ->
taskName.matches(pattern)
}
gradle.taskGraph.beforeTask { gradle.taskGraph.beforeTask {
Task task -> Task task ->
if (task.name.startsWith('test') && task.name.endsWith('UnitTest')) { if (task.name.matches(pattern)) {
task.enabled = gradle.startParameter.taskNames.contains('test') task.enabled = startTasksIncludeTest
} }
} }