Я пытаюсь получить набор юнит-тестов Jasmine для запуска с Karma и RequireJS. Эти модульные тесты ранее работали с Karma с веб-пакетом. Тем не менее, проект, для которого я буду применять эти знания, использует requireJS и не может быть обновлен для использования вместо него веб-пакета.
По сути, я вижу, когда я делаю "начало кармы", переходите к инструментам разработки. в браузере Chrome, который открывается и устанавливает точки останова в моем файле спецификации, а затем запускаю тесты, мои точки останова попадают просто замечательно. Я не могу пройти по файлу без проблем.
Точки останова, которые находятся внутри моих обратных вызовов реализации, однако, никогда не получают попадание.
Например, в тесте ниже:
describe(">String Utils", function() {
it("should be able to lower case a string",function() {
expect(utils.toLowerCase).toBeDefined();
expect(utils.toLowerCase("HELLO WORLD")).toEqual("hello world");
});
Точки останова на линиях 1 и 2 будут в порядке. Точки останова внутри функции в строках 3 и 4 («ожидаемые») никогда не будут достигнуты.
Я думал, что это может быть прозрачной проблемой, но я использую Babel, и улучшения не было.
Ниже приведены соответствующие файлы. Если вам нужно увидеть что-то еще, дайте мне знать, и я могу опубликовать это, или это можно увидеть на моем репозитории github: https://github.com/webgirlwonder/karma-jasmine-test
test-main.js
var tests = [];
for (var file in window.__karma__.files) {
if (window.__karma__.files.hasOwnProperty(file)) {
if (/Spec\.js$/.test(file)) {
tests.push(file);
}
}
}
require.config({
baseUrl: '/base/src/',
deps: tests,
paths: {
index: 'index'
}
});
karma.conf.js
module.exports = function (config) {
config.set({
basePath: '.',
autoWatch: false,
singleRun: false,
browsers: ['Chrome'],
customLaunchers: {
IE_no_addons: {
base: 'IE',
flags: ['-extoff']
}
},
frameworks: [ 'jasmine', 'requirejs' ],
files: [
'src/test-main.js',
{pattern: 'src/**/*.js', included: false},
],
preprocessors: {
'src/**/*.js': [ 'babel' ]
}
});
};
.babelrc
{
"presets": ["@babel/preset-env" ]
}