Карма-Жасмин + RequireJS |Реализация обратных вызовов Jasmine не работает - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь получить набор юнит-тестов 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" ]
}
...