properties - lecturas - revista ethos
Verificación de la tarea de Gradle si la propiedad está definida (2)
Tengo una tarea de gradle que ejecuta un conjunto de pruebas testng. Quiero poder pasar una bandera a la tarea para usar un archivo de prueba especial xml suite (o simplemente usar la suite predeterminada si la bandera no está establecida).
gradle test
Debe ejecutar el conjunto estándar predeterminado de pruebas
gradle test -Pspecial
Debe ejecutar el conjunto especial de pruebas.
He estado intentando algo como esto:
test {
if (special) {
test(testng_special.xml);
}
else {
test(testng_default.xml);
}
}
Pero me sale un error de propiedad indefinida. ¿Cuál es la forma correcta de hacer esto?
De la documentación de Gradle :
-P, --proyecto-prop
Establece una propiedad de proyecto del proyecto raíz, por ejemplo -Pmyprop = myvalue
Así que debes usar:
gradle test -Pspecial=true
con un valor después del nombre de la propiedad
if (project.hasProperty(''special''))
Deberías hacerlo.
Tenga en cuenta que lo que está haciendo para seleccionar un conjunto de pruebas no funcionará, AFAIK: la tarea de prueba no tiene ningún método test()
. Consulte https://discuss.gradle.org/t/how-to-run-acceptance-tests-with-testng-from-gradle/4107 para ver un ejemplo de trabajo:
test {
useTestNG {
suites ''src/main/resources/testng.xml''
}
}