testing autotest guard

testing - Compare los pros y los contras de autofeature/autotest vs Guard?



(2)

¿Alguien tiene algún razonamiento concreto para usar un corredor de autotesting sobre otro? He usado Autofeest + Autotest, me gusta mucho el proceso integrado que esto establece porque primero ejecuta mis pruebas de unidad rspec, y luego las pruebas de pepino, y solo la última prueba de falla, se presta al estándar. flujo de trabajo de escribir las pruebas de pepino, configurar los pasos hasta que fallen y luego caer en pruebas unitarias para la funcionalidad detallada.

Utilicé guardias en la configuración rspec estándar y también funcionó bien, pero no participé en las pruebas de pepino, no tuve tiempo de experimentar más.

Me pregunto si alguien tiene razones específicas para usar una sobre otra, o si una forma mitiga una debilidad de la otra.

Gracias por la entrada, Tony


Minitest, spork y guard no funcionan juntos. LoadError: no such file to load -- -r

Por esto: https://github.com/semaperepelitsa/spork-minitest/issues/2

Así que cambié a Autotest (vea el paquete de pruebas Lightweight de Michael Grosser en el README). Fsevent parece reducir la carga de la CPU, pero no es tan "reactiva" como mi configuración de Guardia anterior con fsevent. No estoy seguro por qué.

Actualización: en realidad, estoy seguro de por qué. Abrí un problema (menor) en autotest: https://github.com/grosser/autotest/issues/33

Es el valor predeterminado de sueño de 1 segundo. Tengo una solución al problema, pero es un truco. No conozco una solución elegante. Con eso en su lugar, se comporta tan rápido como Guard y trabaja con Minitest.

Autotest + Minitest no parece poder hacer salida coloreada porque no es un tty. Esto no está relacionado con Autotest iirc. Me gusta la configuración Guardfile de Guard, no sé dónde están los ''vigilantes'' en Autotest. Hasta ahora, simplemente funciona, pero esto puede ser un problema.


Recientemente cambié de autotest a guard por una razón, funciona mejor que el autotest y tiene muchos guardias disponibles . Entonces, con un solo proceso, puede monitorear muchas cosas.

Actualmente lo uso para Rspec , Passenger y Yard, pero la lista es muy larga y siempre puedes implementar tu guardia si la necesitas para otra cosa.

Me resulta muy útil especialmente para los pasajeros cuando se desarrollan porque recargará el servidor tan pronto como cambie algo que necesite reiniciar el servidor (es decir, rutas, configuración, etc.).

Algunos de los protectores disponibles se pueden reemplazar de alguna manera, por ejemplo, con el patio puede iniciar su propio servidor, pero luego necesita dos procesos diferentes, con guardia puede hacer todo el trabajo con un solo proceso.

En otras palabras, Guard es más un marco genérico para cada proceso que necesita hacer algo desencadenado por un cambio de archivo, el autotest está restringido a la ejecución de pruebas.

Actualizar

En respuesta a tu comentario

Puede aleatorizar el orden de las especificaciones usando --rand en su archivo .rspec si tiene Rspec> 2.8 . De esta manera, esto se logra en el orden rspec y también funciona cuando se llama a rspec con rake o con rspec ejecutable.

Para menos archivos no hay guardias .

Además, las últimas versiones de Guard también incorporan una consola Rails con palanca disponible cuando la guardia está inactiva, muy útil en el modo de desarrollo.