Comenzando con Allure RSpec
Genera hermosos informes HTML usando Allure Report y tus pruebas de RSpec.
INFO
Consulta el proyecto de ejemplo en github.com/allure-examples/allure-rspec-example para ver Allure RSpec en acción.
Configuración
1. Prepara tu proyecto
Instala la herramienta de línea de comandos de Allure Report, si aún no está instalada en tu sistema operativo. Ten en cuenta que Allure Report requiere Java, consulta las instrucciones de instalación.
Agrega Allure RSpec al archivo
Gemfile
de tu proyecto. Por ejemplo:rubysource 'https://rubygems.org' gem 'allure-rspec', '~> 2.23.0' gem 'rspec', '~> 3.12'
Abre una terminal, ve al directorio del proyecto e instala las dependencias del
Gemfile
. Por ejemplo, si usas Bundler:bashcd /home/user/myproject bundle install
En el archivo
.rspec
de tu proyecto, especificaAllureRspecFormatter
como el formateador para RSpec.plain--format AllureRspecFormatter
2. Ejecuta las pruebas
Ejecuta tus pruebas RSpec de la misma manera que lo harías normalmente. Por ejemplo:
bundle exec rspec
Esto guardará los datos necesarios en reports/allure-results
o en otro directorio, según la Configuración. Si el directorio ya existe, los nuevos archivos se agregarán a los existentes, por lo que un informe futuro se basará en todos ellos.
3. Genera un informe
Finalmente, ejecuta Allure para convertir los resultados de las pruebas en un informe HTML. Esto abrirá automáticamente tu navegador para ver el informe.
allure serve reports/allure-results
Si es necesario, reemplaza reports/allure-results
con la ruta del directorio especificado en la Configuración.
Existen algunas opciones que pueden afectar cómo se genera el informe. Ejecuta allure --help
para ver la lista completa de opciones.
Escribiendo pruebas
El adaptador Allure RSpec extiende las características estándar de informes de RSpec al proporcionar capacidades adicionales para crear pruebas más informativas y estructuradas. Esta sección destaca las mejoras clave que se pueden utilizar:
- Anotación de metadatos: Mejora los informes de pruebas con descripciones, enlaces y otros metadatos.
- Organización de pruebas: Estructura tus pruebas en jerarquías claras para mejorar la legibilidad y organización organizar pruebas.
- División en pasos: Divide las pruebas en pasos de prueba más pequeños para facilitar la comprensión y mantenimiento.
- Pruebas parametrizadas: Describe claramente los parámetros para pruebas parametrizadas para especificar diferentes escenarios.
- Archivos adjuntos: Captura automáticamente capturas de pantalla y otros archivos durante la ejecución de las pruebas.
- Selección de pruebas: Usa un archivo de plan de pruebas para seleccionar qué pruebas ejecutar, lo que permite una ejecución flexible de las pruebas.
- Detalles del entorno: Incluye información completa del entorno para acompañar el informe de pruebas.
Agregar metadatos
Allure te permite enriquecer tus informes con una variedad de metadatos. Esta información adicional proporciona contexto y detalles para cada prueba, mejorando la utilidad del informe. Consulta la sección de referencia de metadatos para obtener una lista exhaustiva de lo que se puede agregar.
describe 'Test my website' do
it 'test authentication', issue: 'AUTH-123' do
Allure.description_html 'This test attempts to log into the website using a login and a password.'
Allure.label 'owner', 'John Doe'
# ...
end
end
Organizar pruebas
Como se describe en Mejorando la navegación en tu informe de pruebas, Allure admite varias formas de organizar las pruebas en estructuras jerárquicas.
Para especificar la ubicación de una prueba en la jerarquía basada en el comportamiento:
describe 'Test my website' do
it 'test authentication' do
Allure.epic 'Web interface'
Allure.feature 'Essential features'
Allure.story 'Authentication'
# ...
end
end
describe 'Test my website' do
it 'test authentication',
epic: 'Web interface',
feature: 'Essential features',
story: 'Authentication' do
# ...
end
end
Para especificar la ubicación de una prueba en la jerarquía basada en la suite:
describe 'Test my website' do
it 'test authentication' do
Allure.label 'parentSuite' 'Web interface'
Allure.suite 'Essential features'
Allure.label 'subSuite', 'Authentication'
# ...
end
end
Dividir una prueba en pasos
Allure RSpec proporciona tres formas de crear pasos y sub-pasos: “pasos anotados”, “pasos basados en bloques” y “pasos sin operación”, consulta la referencia.
describe 'Test my website' do
it 'test authentication' do
Steps.step_1
Steps.step_2
end
end
class Steps
extend AllureStepAnnotation
step 'Step 1'
def self.step_1
step_1_1
step_1_2
end
step 'Step 1.1'
def self.step_1_1
# ...
end
step 'Step 1.2'
def self.step_1_2
# ...
end
step 'Step 2'
def self.step_2
step_2_1
step_2_2
end
step 'Step 2.1'
def self.step_2_1
# ...
end
step 'Step 2.2'
def self.step_2_2
# ...
end
end
describe 'Test my website' do
it 'test authentication' do
Allure.run_step 'Step 1' do
# ...
Allure.step name: 'Step 1.1', status: :passed
# ...
Allure.step name: 'Step 1.2', status: :passed
end
Allure.run_step 'Step 2' do
# ...
Allure.step name: 'Step 2.1', status: :passed
# ...
Allure.step name: 'Step 2.2', status: :passed
end
end
end
Describir pruebas parametrizadas
Con Allure RSpec, es muy fácil implementar el patrón de pruebas parametrizadas, es decir, ejecutar la misma lógica de prueba con diferentes datos de prueba. Para hacerlo, simplemente escribe la prueba dentro de un bucle y usa los parámetros de la variable tanto en su título como en su cuerpo.
Para mostrar el valor de un parámetro en el informe de pruebas, pásalo a la función Allure.parameter()
.
describe 'Test my website' do
auth_data = [
['johndoe', 'qwerty'],
['[email protected]', 'qwerty'],
]
auth_data.each do |login, password|
it "Test authentication as '#{login}'" do
Allure.parameter 'Login', login
Allure.parameter 'Password', password
# ...
end
end
end
Adjuntar capturas de pantalla y otros archivos
En los informes de Allure, tienes la capacidad de adjuntar varios tipos de archivos, lo que puede mejorar significativamente la comprensión del informe. Una práctica común es adjuntar capturas de pantalla que capturen el estado de la interfaz de usuario en momentos específicos durante la ejecución de la prueba.
Para obtener instrucciones detalladas sobre cómo implementar archivos adjuntos, consulta la sección de adjuntos en la referencia de Allure RSpec.
describe 'Test my website' do
it 'test authentication' do
# ...
Allure.add_attachment name: 'Screenshot',
source: File.new('/path/to/image.png'),
type: Allure::ContentType::PNG
Allure.add_attachment name: 'Data',
source: 'This is the file content.',
type: Allure::ContentType::TXT
end
end
Seleccionar pruebas mediante un archivo de plan de pruebas
Si la variable de entorno ALLURE_TESTPLAN_PATH
está definida y apunta a un archivo existente, RSpec solo ejecutará las pruebas listadas en este archivo.
Aquí tienes un ejemplo de ejecutar pruebas según un archivo llamado testplan.json
:
export ALLURE_TESTPLAN_PATH=testplan.json
bundle exec rspec
setx ALLURE_TESTPLAN_PATH "testplan.json"
bundle exec rspec
Información del entorno
Para la página principal del informe, puedes recopilar varios detalles sobre el entorno en el que se ejecutaron las pruebas. Para hacerlo, especifica la información en el parámetro de configuración environment_properties
.
Por ejemplo, es una buena idea usar esto para recordar la versión del sistema operativo y la versión de Ruby. Esto puede ayudar al lector futuro a investigar errores que solo son reproducibles en algunos entornos.
require 'allure-rspec'
AllureRspec.configure do |config|
config.environment_properties = {
os_platform: RbConfig::CONFIG['host_os'],
ruby_version: RUBY_VERSION,
}
end
Ten en cuenta que si tu lanzamiento incluye múltiples ejecuciones de RSpec (consulta Cómo funciona), Allure RSpec solo guardará la información del entorno de la última ejecución.