Configuração de teste angular e2e

Guia de configuração rápida para teste de ponta a ponta (e2e) de aplicativos angularjs usando karma, phantomjs e jasmim

O código está disponível neste repositório github

Este guia pressupõe que você já passou por esse guia

Crie nosso diretório para testes ou cenários e2e

mkdir test/e2e

Carma

Então, precisamos criar nossa configuração de karma

karma init configs/karma-e2e.conf.js

e responder as perguntas

  • quadro: jasmim
  • require.js: não
  • Navegador: PhantomJs (percorra as opções com a guia)
  • arquivos: test / e2e / *. js
  • excluir: deixe vazio
  • relógio de carma: sim

então precisaremos editar o arquivo de configuração

configs / karma-e2e.conf.js

Substitua o jasmim por angular

JASMINE,
JASMINE_ADAPTER
,

com

ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER
,

servidor web karma

Precisamos dizer ao karma onde nosso aplicativo está sendo executado para que ele possa executar o teste contra ele. Para isso, configuramos um proxy, do servidor web do karma para o nosso aplicativo. Vá para http: // localhost: 9876 / e você verá seu aplicativo.

proxies = {
"/": "http://localhost:3000"
};

Em seguida, precisamos ser capazes de acessar a interface da web do karma, onde podemos registrar navegadores adicionais para teste ou acessar o modo de depuração de teste. Então, precisaremos de um caminho no qual o karma possa ser servido usando seu servidor web integrado.
É importante que você não use um caminho que possa entrar em conflito com qualquer caminho em seu aplicativo ou ele não será servido.

urlRoot = "/__karma/";

Servidor de Teste

Em seguida, precisamos iniciar o servidor karma para executar testes conforme o código é modificado

karma start configs/karma-e2e.conf.js

Adicionar testes

test / e2e / scenery.js

describe('index page', function() {
beforeEach
(function() {
browser
().navigateTo('/')
});

it
('redirect works', function() {
expect
(browser().location().url()).toBe('/');
});

it
('has directive greeting', function() {
expect
(element('hello').count()).toBe(1);
});

it
('has partial greeting', function() {
expect
(element('p.partial-hello').count()).toBe(1);
});

it
('has model greeting', function() {
expect
(element('p.model-hello').count()).toBe(1);
});
});

Se você verificar o terminal onde o executor de teste está sendo executado, verá que ele encontrou o Scenarios.js, executou todos os 4 testes e se tudo correu bem, passou com sucesso.