Propiedades del sistema y configuracion de Serenity
Ejecutando pruebas de Serenity desde la linea de comandos
Tipicamente ejecutas Serenity como parte del proceso de compilacion (ya sea localmente o en un servidor CI). Ademas de la opcion webdriver.driver discutida aqui, tambien puedes pasar varios parametros como propiedades del sistema para personalizar la forma en que se ejecutan las pruebas. Tambien puedes colocar estos archivos en un archivo de propiedades llamado serenity.properties, en el directorio raiz de tu proyecto.
La lista completa se muestra aqui:
properties
Ruta absoluta del archivo de propiedades donde se definen los valores predeterminados de las propiedades del sistema de Serenity. Por defecto es ~/serenity.properties
webdriver.driver
En que navegador quieres que se ejecuten tus pruebas, por ejemplo firefox, chrome, phantomjs o iexplorer. Tambien puedes usar la propiedad driver como atajo.
webdriver.autodownload
Establecer a false si no quieres que Serenity descargue automaticamente los binarios del driver para ejecuciones locales.
webdriver.provided_type
Si usas un driver proporcionado, de que tipo es. La clase de implementacion necesita estar definida en la propiedad del sistema webdriver.provided.{type}.
webdriver.base.url
La URL inicial predeterminada para la aplicacion, y URL base para rutas relativas.
webdriver.remote.url
La URL a usar para drivers remotos (incluyendo un hub de selenium grid o URL de SauceLabs)
phantomjs.webdriver.port
En que puerto ejecutar PhantomJS (usado en conjunto con webdriver.remote.url para registrar con un hub de Selenium, por ejemplo -Dphantomjs.webdriver=5555 -Dwebdriver.remote.url=http://localhost:4444/wd/hub
webdriver.remote.driver
El driver a usar para drivers remotos
serenity.driver.capabilities
Un conjunto de capacidades definidas por el usuario para configurar el driver de WebDriver. Las capacidades deben pasarse como una lista de pares clave:valor separados por espacios o punto y coma, por ejemplo "build:build-1234; max-duration:300; single-window:true; tags:[tag1,tag2,tag3]"
webdriver.timeouts.implicitlywait
Cuanto tiempo espera webdriver por elementos que aparezcan por defecto, en milisegundos.
webdriver.wait.for.timeout
Cuanto tiempo espera webdriver por defecto cuando usas un metodo de espera fluida, en milisegundos.
webdriver.chrome.driver
Ruta al driver de Chrome, si no esta en la ruta del sistema.
serenity.home
El directorio home para los archivos de salida y datos de Serenity - por defecto, $USER_HOME/.serenity
serenity.outputDirectory
Donde deben generarse los reportes. Si el proyecto contiene solo un modulo (modulo raiz), entonces esta ruta sera relativa al modulo raiz, si el proyecto contiene mas de un submodulo - entonces esta ruta sera relativa al directorio del submodulo, tambien esta ruta puede ser diferente para cada submodulo o puede heredarse de la propiedad del proyecto raiz.
serenity.project.name
Que nombre debe aparecer en los reportes
serenity.ext.packages*
Paquetes de extension. Esta es una lista de paquetes que seran escaneados para implementaciones personalizadas de TagProvider. Para agregar un proveedor de etiquetas personalizado, simplemente implementa la interfaz TagProvider y especifica el paquete raiz para este proveedor en este parametro.
serenity.verbose.screenshots
Deberia Serenity tomar capturas de pantalla para cada boton clickeado y cada enlace seleccionado? Por defecto, una captura de pantalla se almacenara al inicio y al final de cada paso. Si esta opcion se establece a true, Serenity grabara capturas de pantalla para cualquier accion realizada en un WebElementFacade, es decir, cada vez que uses una expresion como element(...).click(), findBy(...).click() y asi sucesivamente. Esto sera sobrescrito si la opcion ONLY_SAVE_FAILING_SCREENSHOTS se establece a true. @Deprecated Esta propiedad aun esta soportada, pero serenity.take.screenshots proporciona un control mas detallado.
serenity.take.screenshots
Establece esta propiedad para tener un control mas fino sobre como se toman las capturas de pantalla, el valor predeterminado es serenity.take.screenshots=BEFORE_AND_AFTER_EACH_STEP Esta propiedad puede tomar los siguientes valores:
FOR_EACH_ACTION: Guarda una captura de pantalla en cada accion de elemento web (como click(), typeAndEnter(), type(), typeAndTab() etc.).BEFORE_AND_AFTER_EACH_STEP: Guarda una captura de pantalla antes y despues de cada paso.AFTER_EACH_STEP: Guarda una captura de pantalla despues de cada pasoFOR_FAILURES: Guarda capturas de pantalla solo para pasos que fallan.DISABLED: No guarda capturas de pantalla para ningun paso.
serenity.full.page.screenshot.strategy
Establece esta propiedad para tener soporte de capturas de pantalla de pagina completa. Esta propiedad puede tomar los siguientes valores:
true: Habilita el modo de captura WHOLE_PAGE.false: Habilita el modo de captura VIEWPORT_ONLY. (predeterminado)
serenity.report.encoding
Codificacion usada para generar las exportaciones CSV
serenity.verbose.steps
Establece esta propiedad para proporcionar un registro mas detallado de los pasos de WebElementFacade cuando se ejecutan las pruebas.
serenity.reports.show.step.details
Deberia Serenity BDD mostrar informacion detallada en las tablas de resultados de pruebas. Si esto se establece a true, las tablas de resultados de pruebas mostraran un desglose de los pasos por resultado. Esto es false por defecto.
serenity.report.show.manual.tests
Mostrar estadisticas para pruebas manuales en los reportes de pruebas.
serenity.report.show.releases
Reportar sobre releases (predeterminado true).
serenity.restart.browser.frequency
Durante las pruebas basadas en datos, algunos navegadores (Firefox en particular) pueden volverse lentos con el tiempo debido a fugas de memoria. Para solucionar esto, puedes hacer que Serenity inicie una nueva sesion del navegador a intervalos regulares cuando ejecuta pruebas basadas en datos.
serenity.step.delay
Pausa (en ms) entre cada paso de prueba.
untrusted.certificates
Util si estas ejecutando pruebas de Firefox contra un servidor de pruebas HTTPS sin un certificado valido. Esto hara que Serenity use un perfil con la propiedad AssumeUntrustedCertificateIssuer establecida.
refuse.untrusted.certificates
No aceptar sitios usando certificados no confiables. Por defecto, Serenity BDD acepta certificados no confiables - usa esto para cambiar este comportamiento.
serenity.timeout
Cuanto tiempo debe esperar el driver por elementos que no son inmediatamente visibles, en milisegundos.