Como configurar o Karma e Jasmine com Webpack

Eu estava querendo voltar para blogs, e eu pensei que este era um bom tema para cobrir.

Depois de passar por alguns reagem cursos ultimamente, Webpack rapidamente se tornou uma ferramenta indispensável para mim. Ele carrega e transpiles tudo, e faz um belo puro pacote. É o meu go-to ferramenta para novos projetos agora.

Ao configurar os testes de unidade para o meu pedido Painel GitHub Pull, as coisas não foram tão suave como com alguns dos meus projetos anteriores. Por promessa-poller, Acabei de instalar Jasmine, escreveu as especificações, e correu-los com o comando jasmim. Legal e fácil.

Mas com um projeto Reagir, você pode precisar escrever alguma JSX em seus testes. Ou talvez você só quer usar sintaxe ES2015 completo. Assim, a configuração da infraestrutura de teste, neste caso, não é tão simples (mas ainda muito fácil).

Eu não conseguia descobrir como para obter apenas Jasmine correndo com Webpack, mas acrescentando Karma fez o truque muito bem. Aqui está uma visão geral de como obtê-lo instalado e funcionando.

Primeiro, eu vou assumir que você já tem um arquivo de configuração Webpack para sua aplicação. Você precisa explorar este mais tarde no processo.

Existem algumas dependências de desenvolvimento que você precisa para instalar:

Você pode instalar a maioria destes tudo de uma só vez:

karma-cli está instalado separadamente porque ele é instalado em todo o mundo:

Agora que todos os pacotes são instalados, gerar uma configuração Karma começar com:

Isto irá pedir-lhe um monte de perguntas sobre a sua configuração de teste Karma. Certifique-se de dizer que você está usando Jasmine. Quando estiver pronto, você deve ter algo parecido com isto:

Agora você só precisa puxar na sua configuração Webpack. No topo do arquivo de configuração, exigem-lo em:

Em seguida, adicione uma seção Webpack à sua configuração Karma:

Isto irá expor sua configuração Webpack para Karma.

Finalmente, adicione uma seção pré-processadores:

Isso permite que Karma sabe que antes de seus testes são executados, eles precisam ser pré-processado por executá-los através Webpack.

A configuração final Karma deve ficar assim:

A única coisa que será diferente na sua configuração Karma é o repórter. Eu prefiro karma-mocha-repórter, então é isso que eu estou usando em minha configuração.

A partir daqui, você é bom para ir. Vá em frente e escrever seus testes usando JSX ou ES2015. Para executar os testes, basta começar Karma da linha de comando:


A execução de testes Karmas JS como parte de um Maven CI construir com Webjars

Passei várias horas no trabalho recentemente a tentar resolver este problema. A solução tem algumas peças móveis para isso, então eu pensei que eu&# 8217; D anotar algumas notas para torná-lo mais fácil para mim e outros no futuro.

No meu local de trabalho, temos um fluxo de trabalho Maven / Java criada com ferramentas no lugar para a execução CI constrói e implantação de artefatos construídos para nossos ambientes de desenvolvimento / teste / PROD etc. Algum tempo atrás nós adotamos Webjars como uma forma de gerir os recursos da web estáticas através do Maven mecanismo de gestão de dependência.

À medida que se tornaram mais front-end pesado e como a quantidade de lógica de negócios em nosso código front-end aumentou, tornou-se cada vez mais importante para integrar javascript testes unitários e E2E em nossos processos de construção.

Depois de avaliar algumas opções de hotel estabeleceu o corredor de teste Karma. Este é um corredor de teste poderosa que suporta o teste cross-browser, múltiplos formatos de relatórios e a capacidade de &# 8216; assista&# 8217; arquivos de projeto e testes automaticamente re-executados quando for detectada uma alteração (muito legal!). A maneira mais fácil de chegar Karma corrida é em NodeJS, que nós didn&# 8217; t criaram em nosso ambiente.

Como podemos integrar testes Karma-conduzido em um projeto que usa dependências Webjar para que os testes podem ser executados localmente e como parte de uma compilação Maven CI usando o nosso ferramental existente?

Se você quiser pular à frente, um projeto totalmente funcional está disponível no github. Dê uma olhada no README para começar.

Primeiro, algumas informações sobre as várias ferramentas e bibliotecas usadas para quem não está familiarizado com eles.

Maven é um sistema de gerenciamento de dependência e gerenciamento de compilação de projeto. Tornou-se um padrão de fato para projetos Java. Ele suporta uma ampla variedade de plugins que podem ser usados ​​em conjunto para executar processos de construção arbitrariamente complexas.

Webjars é uma convenção para a embalagem de bibliotecas web do lado do cliente como dependências JAR para que eles possam ser gerenciados através de ferramentas orientadas Java tais como Maven. Eles têm a propriedade bom que eles podem ser incluídos e gerenciado como uma dependência do projeto da mesma forma que qualquer biblioteca JAR regular pode.

Karma é uma biblioteca corredor de teste para executar testes de JS. Os testes podem ser executados em vários navegadores e em vários dispositivos.

Se você não&# 8217; t querer entrar em detalhes, a repartição da solução é a seguinte:

  1. dependências webjar Setup
  2. webjars host usando o Jetty Maven Plugin ao desenvolver localmente
  3. Setup Karma para executar localmente utilizando as dependências Webjar hospedados
  4. Use o plugin Maven Dependência para descompactar dependências Webjar durante uma compilação CI
  5. Criar uma configuração Karma específicos do CI que utiliza as dependências desembalados em vez dos hospedados durante uma compilação CI
  6. Use o Frontend-Maven-Plugin para instalar NodeJS e Karma local para o projeto durante uma compilação CI e executar os testes Karma
  7. (Opcional) Adicione relatórios estilo JUnit de modo que os resultados do teste Karma pode ser relatado pela ferramental CI, como Jenkins etc.

Setup seu projeto para usar Webjars

Esta parte é fácil. dependências Webjar pode ser adicionado ao seu POM assim como qualquer outra dependência.

A documentação Webjars tem instruções para obter Webjars rodando em várias plataformas. Para facilitar a nós configuração&# 8217; ll usar um recipiente servlet 3,0 (ver a próxima secção).

A maneira mais fácil de fazer as dependências webjar disponível é através de um recipiente servlet 3,0 tal como molhe. Eu usei o Jetty Maven Plugin, que permite o lançamento de um contêiner Jetty totalmente configurado usando Maven.


configuração Karma0.8.6.5 karma-0.8.6.5-setup.exe

tamanho: 7,17 mb.

Data: 2014/07/27 13:15

configuração Karma

Versão do arquivo: 0.8.6.5

Nome do produto: Karma

título pai: Oficial Comunidade Karma | Início | Carma

karma-0.8.6.5-setup.exe download grátis.

Se você receber uma desaparecida karma-0.8.6.5-setup.exe erro:

- Você pode tentar baixar esse arquivo e colá-lo no diretório onde falta

Se você receber um erro no arquivo de karma-0.8.6.5-setup.exe:

- Tentar substituí-lo com um presente.

Se você não consegue encontrar janelas tentativa diretório:

1. Pressione e segure a tecla Windows no seu teclado, pressione o botão R.

2. Digite o comando "cmd" e pressione Enter

3. Em uma janela de comando digite o comando "conjunto systemroot" e pressione Enter. Ele irá exibir diretório do sistema.