Como executar as suítes de testes QUnit do core, plugin e tema do Discourse

Discourse possui testes de frontend extensivos para o núcleo, plugins e temas. Assim que você tiver um ambiente de desenvolvimento local funcionando, esses testes podem ser executados localmente de várias maneiras.

Executando testes no navegador

Núcleo / Plugins: Visite /tests no seu ambiente de desenvolvimento

Temas: Visite /theme-qunit no seu ambiente de desenvolvimento (ou produção) e, em seguida, escolha o tema

Em geral, ao trabalhar em testes do núcleo, você deve habilitar “Skip Plugins” (Ignorar Plugins), e quando estiver trabalhando em plugins, você deve escolher o plugin específico na lista suspensa (o que automaticamente fará “Skip Core” (Ignorar Núcleo)). Não se espera que a suíte de testes do núcleo passe quando os plugins estão habilitados (porque os plugins frequentemente alteram intencionalmente o comportamento do núcleo)

:information_source: Infelizmente, no momento em que este documento foi escrito, vazamentos de memória em nossos testes significam que tentar executar a suíte inteira em um único navegador tende a atingir o limite de memória do navegador. Para executar a suíte inteira em vários navegadores em paralelo, confira os exemplos de CLI abaixo.

Executando testes na CLI

Núcleo

Navegue até a raiz da aplicação Ember (app/assets/javascripts/discourse) no repositório Discourse e certifique-se de ter executado pnpm install desde a última vez que puxou as alterações do upstream.

A partir daí, você pode usar as ferramentas padrão do Ember-CLI para executar os testes - confira a seção “How to Run Tests” (Como Executar Testes) dos Guias do Ember. Também temos o Ember Exam instalado, que fornece algumas sinalizadores de aleatorização e paralelização muito úteis.

Aqui estão alguns exemplos úteis:

# Executa a suíte de testes completa do núcleo em 5 instâncias 'headless' do Chrome em paralelo:
pnpm ember exam --parallel 5 --load-balance

# Executa todos os testes que contêm uma determinada string no nome do módulo/teste:
pnpm ember exam --filter "Integration | Component | bookmark"

# Executa no modo "server", que fornece um URL para carregar em um navegador para facilitar a depuração:
pnpm ember exam --filter "somefilter" --server

Plugins

A partir do diretório raiz do Discourse:

bin/rake "plugin:qunit" # Executa todos os testes qunit de plugins
bin/rake "plugin:qunit[discourse-chat-integration]" # Executa os testes qunit de um único plugin

Temas

A partir do diretório raiz do Discourse:

bin/rake "themes:qunit[url,\u003ctheme_url\u003e]"
bin/rake "themes:qunit[name,\u003ctheme_name\u003e]"
bin/rake "themes:qunit[id,\u003ctheme_id\u003e]"

Este documento é controlado por versão - sugira alterações no github.

19 curtidas