【发布时间】:2014-11-01 01:02:08
【问题描述】:
我有一个简单的测试,它必须在 webstorm 中使用 karma 和 requirejs。
问题在于,由于某种原因,requirejs 不会为我为测试加载的模块添加“.js”。所以它在尝试加载“../ts/mamats/mama”时崩溃了,而“../ts/mamats/mama.js”存在
测试(main.jasmine.js):
define(["require", "exports", "../ts/mamats/mama"], function(require, exports, mama) {
describe("first test", function () {
it("should be true", function () {
var object = new mama.block();
expect(object instanceof mama.block).toBe(true);
});
});
});
//# sourceMappingURL=main.jasmine.js.map
当我将“../ts/mamats/mama”替换为“../ts/mamats/mama.js”时,一切正常
sourceMappingURL 在这里,因为 javaScript 文件是从 typeScript 源文件生成的,因此我无法手动为模块添加“.js”
测试从这个入口点(main-test.js)开始:
var tests = Object.keys(window.__karma__.files).filter(function (file) {
return (/\.jasmine\.js$/).test(file);
});
requirejs.config({
baseUrl: '/base',
deps: tests,
callback: window.__karma__.start
});
为什么 requirejs 不在这里为模块添加“.js”?
Karma 配置文件:
module.exports = function(config) {
config.set({
basePath: '../',
frameworks: ['jasmine', 'requirejs'],
files: [
'static-tests/main-test.js',
{ pattern: 'static/**/*', included: false },
{ pattern: 'static-tests/**/*', included: false }
],
exclude: [],
preprocessors: {},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: ['Chrome'],
singleRun: false
});
};
【问题讨论】:
-
看起来解决方案在这里:github.com/karma-runner/karma-requirejs/issues/3 明天试试。
标签: requirejs typescript karma-runner webstorm karma-jasmine