我正在尝试进行一组茉莉花单元测试,以与Karma和RequireJS一起运行。这些单元测试以前在带有Webpack的Karma上运行良好。但是,我将要应用此知识的项目将使用requireJS,并且无法更新为使用webpack。
基本上,我所看到的是当我执行“因果启动”,进入打开的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" ]
}