5

Acabo de unirme a un equipo que trabaja en una aplicación web Java existente. Se me ha encomendado la tarea de crear un paquete de prueba de integración automatizado que se ejecute cuando los desarrolladores se comprometan con nuestro servidor de integración continua (TeamCity), que se despliega automáticamente en nuestro servidor de transición, por lo que realmente las pruebas se ejecutarán contra nuestro servidor de aplicaciones web.Prueba de integración de una aplicación * Existente * (con ejecución automática de la suite de pruebas)

He leído muchas cosas sobre las pruebas de integración automática con frameworks como Watir, Selenium y RWebSpec. He creado pruebas en todos estos y, aunque prefiero Watir, estoy abierto a todo.

Lo que no ha quedado claro para mí es cómo crear un conjunto de pruebas completo para una aplicación, y cómo hacer que ese conjunto se ejecute en su totalidad al ejecutar algún script. Puedo felizmente crear pruebas individuales de complejidad variable, pero hay un vacío en mi conocimiento sobre cómo unir todo en algo útil.

¿Alguien tiene algún consejo sobre cómo crear un conjunto de pruebas completo y que se ejecute automáticamente?

Gracias!

Respuesta

2

Normalmente usará Rake para automatizar la ejecución de la prueba. Suponiendo que está usando Test :: Unidad para su prueba lo haría configurar su Rakefile Con el siguiente contenido:

require 'rubygems' 
require 'rake' 
require 'rake/testtask' 

Rake::TestTask.new do |t| 
    t.libs << "test" 
    t.test_files = FileList.new 'test/**/ts_*.rb'.sort 
    t.loader = :rake 
    t.verbose = true 
end 

Esto configura todos los archivos del banco de pruebas en su carpeta de proyecto "prueba" por defecto. Luego puede ejecutarlos con el siguiente comando:

rake test 

y luego ejecutará todas sus suites de prueba para todo el proyecto. Se puede decir que para realizar una prueba específica mediante la siguiente sintaxis:

rake TEST=path/under/test/folder/tc_filename.rb test 

dado que está utilizando TeamCity a continuación, puede crear una versión y utilizar el corredor Rastrillo para ejecutar sus conjuntos de pruebas. TeamCity extraerá toda la información de la prueba (salida, seguimientos de pila, etc.) en la interfaz de usuario al igual que lo hace con JUnit. Es una muy buena integración.

Como referencia, los conjuntos de pruebas se vería algo como esto:

require 'test/unit' 
require 'path/relative/to/your/tests/tc_some_test1.rb' 
require 'path/relative/to/your/tests/tc_some_test2.rb' 

De esta manera se pueden secuenciar los casos de prueba dentro de cada conjunto de pruebas según se desee.

0

para ejecutar una prueba Watir que se encuentra en un archivo, basta con ejecutar el archivo:

$ ruby tests_1.rb 

Para ejecutar pruebas en varios archivos de ejecutar todos los archivos. Puede crear un archivo que se extenderá a todos ellos (por ejemplo all_tests.rb):

load "tests_1.rb" 
load "tests_2.rb" 

y luego simplemente ejecute el archivo:

$ rubí all_tests.rb

No estoy familiarizado con TeamCity, pero deberías poder ejecutar all_tests.rb desde él.

1

Terminé escribiendo las pruebas usando Rspec para hacer afirmaciones contra objetos Watir (Celerity, para ser precisos). Esto me permitió usar Rake para automatizar la ejecución de las pruebas. Hay algunos buenos artículos sobre el uso de Rspec y Rake juntos. Nuestro servidor de compilación (teamcity) tiene ganchos para las tareas de Rake así que esto funciona bien. Me tomó un tiempo juntar todo en mi mente así que pensé en publicar la solución final aquí.

+0

¿Escribió sobre la solución en alguna parte? –

Cuestiones relacionadas