Teste de unidade do Node.js [fechado]


164

Existe alguma estrutura de teste de unidade node.js (server side js) atualmente disponível? Estou procurando algo um pouco mais profundo do que o módulo Assert fornecido.

Respostas:


66

Acabei usando a unidade do nó e estou muito feliz com isso.

Eu estava usando o Expresso originalmente, mas o fato de ele executar testes em paralelo causou alguns problemas. (Por exemplo, o uso de acessórios de banco de dados não funciona bem nessa situação).


25
O Expresso não o força a executar testes em paralelo. Alimente o argumento --serial e ele executará todos eles em ordem alegre.
einaros

3
Acabei de baixar e usar a unidade de nó ... faz exatamente o que diz, funcionou pela primeira vez ftw!
Michael Dausmann

1
A Nodeunit é um pouco estranha ao exigir que todos os testes chamem .done()imho.
Kos

2
Se eu estava começando um novo projeto agora eu provavelmente usar Mocha como o framework de teste
evilcelery

1
A unidade de nó requer .done()para acomodar testes assíncronos. Concordo que às vezes pode ser um pouco pesado, mas há uma boa razão para fazê-lo dessa maneira.
L0j1k 28/05

48

Eu também estava procurando uma estrutura de teste decente para o nó e encontrei o Mocha . É o sucessor oficial do Expresso e parece muito maduro.

Ele permite conectar diferentes bibliotecas de asserções, oferece repórteres para cobertura de código e outras coisas (você pode conectar por conta própria). Pode executar sincronização ou assíncrona e possui uma API concisa.

Vou tentar e informar de volta ...

EDITAR:

Depois de um tempo incrível dedicado a outros projetos, finalmente voltei a um projeto Javascript e tive tempo para brincar com o mocha. Eu posso recomendar seriamente usá-lo. Os testes são lidos muito bem, a integração com o gulp é ótima e os testes são executados muito rapidamente. Consegui configurar as execuções de teste automáticas autônomas e no navegador (browserify) e os relatórios de cobertura de código correspondentes em cerca de meio dia (a maior parte do tempo gasto na compreensão de como usar o browserify a partir do gulp). Para mim, o mocha parece uma escolha muito boa para uma estrutura de teste.

ATUALIZAR:

Eu ainda estou muito convencido sobre Mocha. A integração com o chai permite conectar diferentes estilos de asserção. Você pode verificar uma configuração de trabalho neste projeto do github . Estou usando agora com karma, integrando relatório de cobertura de código, observadores automáticos e boa integração com o IntelliJ


O link do projeto github está quebrado. Você poderia renovar, por favor?
314 karlisup


15

Pessoalmente, usei apenas o módulo assert, mas também me vejo querendo mais. Examinei muitos módulos de nós e as estruturas populares de teste de unidade são unidades de nó e devem (que são feitas pelo mesmo cara que o Expresso (talvez um nome atualizado?)

Os votos também parecem promissores.


15
Eu voto você apenas por esse trocadilho.
ThomasReggi

15

Pessoalmente, eu fiquei com o Expresso , mas existem várias estruturas diferentes por aí, acomodando a maioria dos estilos de teste.

Joyent tem uma extensa lista ; dê uma chance.


1
O Expresso é o único que faz sentido para mim e funciona corretamente com código assíncrono. Tentei votos e qunit também.
precisa saber é o seguinte

5

votos é uma sólida biblioteca de testes de unidades para o node.js, mas a sintaxe é tediosa.

Eu escrevi uma abstração fina chamada votos-fluente, que torna a API encadeada.

E escrevi outra abstração, [votos-is], que se baseia em votos fluentes e expõe uma sintaxe no estilo BDD.

Um exemplo seria

var is = require("vows-is");

is.suite("testing is fun").batch()

    .context("is testing fun?")
        .topic.is("yes")
        .vow.it.should.equal("yes")

.suite().run({
    reporter: is.reporter
});

Mais exemplos


6
amen para que, sintaxe votos é terrível IMO
Donn Felker

Teve um jogo com votos com o wrapper apaziguador. Parecia uma boa idéia para testar um json api, mas rapidamente ficou aquém. Também costumo achar que APIs fortemente orientadas para encadear chamadas como essa são difíceis de usar e difíceis de depurar. Eles ficam bem em exemplos, mas não funcionam bem com o uso no mundo real.
drekka

@drekka votos e votos são horríveis. use mocha
Raynos

Tentando agora, mas parece estar com um monte de problemas semelhantes.
Drekka

você deve estar usando errado então. tente ler gist.github.com/2896455 . @drekka
Raynos


1

Se você estiver familiarizado com o QUnit , poderá usar o node-qunit, que é uma espécie de wrapper de nó em torno da estrutura existente do QUnit.


0

Originalmente criada para o node.js., o deadunit é uma biblioteca de testes de unidade javascript para o node.js. e o navegador. Alguns de seus atributos exclusivos:

  • Curva de aprendizado fácil
  • Pode gerar resultados de teste na linha de comando (texto colorido ou sem formatação) ou como html
  • Ele imprime as linhas de código reais onde estão suas afirmações, para que sua saída faça sentido, mesmo que você não gaste muito tempo escrevendo comentários de teste
  • Ele possui uma countasserção simples que facilita o tratamento de exceções esperadas e assíncronas.
  • ele imprime exceção e todos os dados anexados que eles têm
  • informará se o seu código está travado (algo que você não deseja, mas geralmente passa despercebido)
  • Possui uma API orientada a eventos que permite transmitir resultados de testes em uma rede ou da maneira que você desejar.
  • Suporta testes com fibras de nó

0

Acabei de enviar um projeto que estou usando para testar a unidade nodejs com karma e Jasmine: narma . Os módulos do nó são carregados em um navegador nodewebkit para que você possa executar os módulos do nó e usar bibliotecas como jquery na mesma pilha.


0

O test-studio é um pacote npm que fornece um poderoso front end baseado na Web para testes de unidade. Ele suporta coisas como executar individuais ou grupos de testes e inserir o inspetor de nós em testes individuais. Atualmente, ele suporta mocha e mais estruturas serão suportadas no futuro, sob demanda.

Leia mais sobre isso aqui .

Disclaimer: Eu sou o autor.


1
parece que isso foi escrito por você, certo? Nesse caso, você deve divulgar esse fato em sua resposta.
strugee
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.