Discourse dispose de tests frontend étendus pour le cœur, les plugins et les thèmes. Une fois que vous disposez d’un environnement de développement local fonctionnel, ces tests peuvent être exécutés localement de plusieurs manières.
Exécution des tests dans le navigateur
Cœur / Plugins : Visitez /tests dans votre environnement de développement
Thèmes : Visitez /theme-qunit dans votre environnement de développement (ou de production), puis choisissez le thème
En général, lorsque vous travaillez sur les tests du cœur, vous devez activer « Skip Plugins » (Ignorer les plugins), et lorsque vous travaillez sur des plugins, vous devez choisir le plugin spécifique dans la liste déroulante (ce qui « ignorera » automatiquement le cœur). La suite de tests du cœur n’est pas censée réussir lorsque les plugins sont activés (car les plugins modifient souvent délibérément le comportement du cœur).
Malheureusement, au moment de la rédaction, des fuites de mémoire dans nos tests signifient que tenter d’exécuter la suite entière dans un seul navigateur a tendance à atteindre la limite de mémoire du navigateur. Pour exécuter la suite entière sur plusieurs navigateurs en parallèle, consultez les exemples de CLI ci-dessous.
Exécution des tests sur la CLI
Cœur
Naviguez jusqu’à la racine de l’application Ember (app/assets/javascripts/discourse) dans le dépôt Discourse et assurez-vous d’avoir exécuté pnpm install depuis votre dernière récupération des changements en amont.
À partir de là, vous pouvez utiliser l’outil Ember-CLI standard pour exécuter les tests - consultez la section « How to Run Tests » des guides Ember ("How to Run Tests" section of the Ember Guides). Nous avons également installé Ember Exam qui fournit des indicateurs de randomisation et de parallélisation très utiles.
Voici quelques exemples utiles :
# Exécute la suite de tests du cœur entière sur 5 instances 'headless' de Chrome en parallèle :
pnpm ember exam --parallel 5 --load-balance
# Exécute tous les tests qui contiennent une certaine chaîne dans leur nom de module/test :
pnpm ember exam --filter "Integration | Component | bookmark"
# Exécute en mode "server", ce qui vous donne une URL à charger dans un navigateur pour un débogage plus facile :
pnpm ember exam --filter "somefilter" --server
Plugins
Depuis le répertoire racine de Discourse :
bin/rake "plugin:qunit" # Exécute tous les tests qunit des plugins
bin/rake "plugin:qunit[discourse-chat-integration]" # Exécute les tests qunit d'un seul plugin
Thèmes
Depuis le répertoire racine de Discourse :
bin/rake "themes:qunit[url,<theme_url>]"
bin/rake "themes:qunit[name,<theme_name>]"
bin/rake "themes:qunit[id,<theme_id>]"
Ce document est contrôlé par version - suggérez des modifications sur github.