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.