Come eseguire le suite di test QUnit di core, plugin e tema di Discourse

Discourse dispone di estesi test frontend per il core, i plugin e i temi. Una volta che si dispone di un ambiente di sviluppo locale funzionante, tali test possono essere eseguiti localmente in diversi modi.

Esecuzione dei test nel browser

Core / Plugin: Visita /tests nel tuo ambiente di sviluppo

Temi: Visita /theme-qunit nel tuo ambiente di sviluppo (o produzione), quindi scegli il tema

In generale, quando si lavora sui test del core si dovrebbe abilitare “Skip Plugins” (Salta Plugin), e quando si lavora sui plugin si dovrebbe scegliere il plugin specifico dal menu a discesa (che attiverà automaticamente ‘Skip Core’). Non è previsto che la suite di test del core passi con i plugin abilitati (poiché i plugin spesso modificano deliberatamente il comportamento del core)

:information_source: Purtroppo, al momento della stesura, i memory leak nei nostri test fanno sì che tentare di eseguire l’intera suite in un singolo browser tenda a raggiungere il limite di memoria del browser. Per eseguire l’intera suite su più browser in parallelo, consulta gli esempi CLI riportati di seguito.

Esecuzione dei test sulla CLI

Core

Naviga nella root dell’applicazione Ember (app/assets/javascripts/discourse) nel repository di Discourse e assicurati di aver eseguito pnpm install dall’ultima volta che hai scaricato le modifiche upstream.

Da lì, puoi utilizzare gli strumenti standard di Ember-CLI per eseguire i test: consulta la sezione “How to Run Tests” delle Ember Guides. Abbiamo anche installato Ember Exam che fornisce alcuni flag di randomizzazione e parallelizzazione molto utili.

Ecco alcuni esempi utili:

# Esegue l'intera suite di test del core su 5 istanze 'headless' di Chrome in parallelo:
pnpm ember exam --parallel 5 --load-balance

# Esegue tutti i test che contengono una certa stringa nel nome del loro modulo/test:
pnpm ember exam --filter "Integration | Component | bookmark"

# Esegue in modalità "server", che fornisce un URL da caricare in un browser per un debugging più semplice:
pnpm ember exam --filter "somefilter" --server

Plugin

Dalla directory principale di Discourse:

bin/rake "plugin:qunit" # Esegue tutti i test qunit dei plugin
bin/rake "plugin:qunit[discourse-chat-integration]" # Esegue i test qunit di un singolo plugin

Temi

Dalla directory principale di Discourse:

bin/rake "themes:qunit[url,<tuo_url_tema>]"
bin/rake "themes:qunit[name,<tuo_nome_tema>]"
bin/rake "themes:qunit[id,<tuo_id_tema>]"

Questo documento è controllato tramite versione - suggerisci modifiche su github.

19 Mi Piace