A diferencia de mi previous question, intentaré cumplir mis requisitos.Cómo automatizar pruebas funcionales/de integración y reversiones de bases de datos
Estoy tratando de encontrar algún tipo de marco/metodología/"cosa" que se ajustara a lo siguiente:
- Capacidad para escribir una prueba automatizada, preferiblemente por escrito en Visual Studio, usando C#.
- La prueba debe conducir un navegador web e interactuar con SUT tal como lo haría un usuario.
- La prueba debería ser capaz de configurar un escenario de prueba en DB.
- La prueba debería ser capaz de afirmar que las interacciones del usuario tuvieron el efecto esperado en DB.
- Una vez completada la prueba, debería poder deshacer todos los cambios realizados en la base de datos.
Mi primer intento fue utilizar la prueba NUnit para conducir selenio (y Watin antes de eso), pero se enfrentó a un poco de un problema (ver el enlace anterior), mientras que el uso de TransactionScope a revertir los cambios navegador selenio impulsada hizo en el DB.
¿Alguien ha hecho algo como esto en el "mundo real"? He encontrado algunas referencias a través de Google, pero no he podido encontrar ejemplos concretos sobre cómo implementar esto. No habría ningún problema si estuviera haciendo pruebas unitarias. En ese caso, TransactionScope sería suficiente.
Editar: R. Harvey me señaló this pregunta, que es casi idéntica a mi situación.
Sin embargo, esa pregunta es solo casi idéntica. Mi aplicación es parte de una familia de servicios, todos ellos acceden al mismo conjunto de tablas de base de datos. La cantidad de datos de prueba requeridos no permite un uso eficiente de los scripts drop/create, ¿hay alguna solución alternativa para esto?
Estamos utilizando SQL Server 2005, y no soy muy hábil en la magia de la base de datos, por lo que si hay alguna forma de utilizar secuencias de comandos sql que no sean drop/create, entonces podría ser una opción.
Edición 2:
Sobre la base de las respuestas y arañar un poco de cabeza adicional, vamos a ir a las bases de datos más ligeros para los desarrolladores para realizar unidad-, las pruebas de integración y funcional. Esto nos permite usar scripts sql para configurar y demoler la prueba.
Esto podría ayudar: http://stackoverflow.com/questions/768944/rollback-database-after-integration-selenium-tests –
Sí, no tengo problemas con el selenio en sí mismo. Parece ser una gran herramienta! El problema radica en hacer retroceder los cambios provocados por Selenium broser en db. – juarola
Oh mi, cómo podría extrañar eso. Traté de hacer una búsqueda exhaustiva antes de publicar esto, pero el escenario en esa pregunta es casi una réplica. Agregaré un punto a mi pregunta para diferenciarme de su situación ... – juarola