Discourse tiene pruebas extensivas de frontend para el núcleo, los complementos (plugins) y los temas (themes). Una vez que tengas un entorno de desarrollo local funcional, esas pruebas se pueden ejecutar localmente de varias maneras.
Ejecutar pruebas en el navegador
Núcleo / Complementos: Visita /tests en tu entorno de desarrollo
Temas: Visita /theme-qunit en tu entorno de desarrollo (o producción), luego elige el tema
En general, cuando trabajes en pruebas del núcleo, debes habilitar “Skip Plugins” (Omitir Complementos), y cuando trabajes en complementos, debes elegir el complemento específico del menú desplegable (lo que automáticamente ‘Omitirá el Núcleo’). No se espera que el conjunto de pruebas del núcleo pase cuando los complementos están habilitados (porque los complementos a menudo cambian intencionalmente el comportamiento del núcleo).
Desafortunadamente, en el momento de escribir esto, las fugas de memoria en nuestras pruebas significan que intentar ejecutar todo el conjunto en un solo navegador tiende a alcanzar el límite de memoria del navegador. Para ejecutar todo el conjunto a través de múltiples navegadores en paralelo, consulta los ejemplos de CLI a continuación.
Ejecutar pruebas en la CLI
Núcleo
Navega a la raíz de la aplicación Ember (app/assets/javascripts/discourse) en el repositorio de Discourse y asegúrate de haber ejecutado pnpm install desde la última vez que obtuviste cambios ascendentes (upstream).
Desde allí, puedes usar las herramientas estándar de Ember-CLI para ejecutar las pruebas; consulta la sección “How to Run Tests” de las Guías de Ember. También tenemos instalado Ember Exam que proporciona algunas banderas de aleatorización y paralelización muy útiles.
Aquí hay algunos ejemplos útiles:
# Ejecutar todo el conjunto de pruebas del núcleo a través de 5 instancias 'headless' de Chrome en paralelo:
pnpm ember exam --parallel 5 --load-balance
# Ejecutar todas las pruebas que contienen una cadena determinada en su nombre de módulo/prueba:
pnpm ember exam --filter "Integration | Component | bookmark"
# Ejecutar en modo "server", que te proporciona una URL para cargar en un navegador para una depuración más fácil:
pnpm ember exam --filter "somefilter" --server
Complementos (Plugins)
Desde el directorio raíz de Discourse:
bin/rake "plugin:qunit" # Ejecutar todas las pruebas qunit de los complementos
bin/rake "plugin:qunit[discourse-chat-integration]" # Ejecutar las pruebas qunit de un solo complemento
Temas (Themes)
Desde el directorio raíz de Discourse:
bin/rake "themes:qunit[url,<tu_url_tema>]"
bin/rake "themes:qunit[name,<tu_nombre_tema>]"
bin/rake "themes:qunit[id,<tu_id_tema>]"
Este documento está controlado por versiones: sugiere cambios en github.