Recentemente, criei um projeto baseado em javascript. Configurar o ambiente de teste foi muito difícil para mim no início. Demora bastante e encontrei vários erros. Portanto, quero compartilhar meus problemas e a solução:
I. Diferentes RequerJS BaseURL
problema: Requirejs baseUrl para o ambiente de teste e seu aplicativo é diferente. Causa vários problemas de dependências
exemplo:
main.js
require.config({
baseUrl: './app/js', // folder app/js
paths: {
jquery: 'js/lib/jquery/jquery',
backbone: 'js/lib/backbone/backbone',
underscore: 'js/lib/underscore/underscore',
text: 'js/lib/text/text'
}
});
test-main.js
require.config({
// Karma serves files under /base, which is the basePath from your config file
baseUrl: '/base/app/', //folder app
paths: {
'jquery': 'js/lib/jquery/jquery',
'underscore': 'js/lib/underscore/underscore',
'backbone': 'js/lib/backbone/backbone',
'text': 'js/lib/text/text'
},
solução: sempre faça test-main.js
e main.js
baseUrl
test-main.js
baseUrl: '/base/app/js'
main.js
baseUrl: './app/js'
II. problema de chai e requirejs
problema: TypeError não capturado: Não é possível ler a propriedade ‘deveria’ de indefinido
solução: coloque requirejs antes do chai na lista de estrutura do karma (ref: https://github.com/xdissent/karma-chai/issues/5 )
III. Sem carimbo de data / hora para o arquivo
problema: ERROR: ‘Não há carimbo de data / hora para /base/app/templates/setting.js!’
solução: tente verificar sua lista de arquivos em karma.conf.js. É porque o arquivo não está incluído
por último, mas não menos importante, aqui está minha configuração para karma.conf.js
e test-main.js
.
Espero que ajude você!