configurar ambiente de teste de javascript usando karma, mocha, chai e requirejs

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.jse main.jsbaseUrl

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.jse test-main.js.
Espero que ajude você!