我似乎在将Requirejs导入我的Karma / Jasmine测试框架时出现问题。我正在测试一个Angular前端代码库,并将我的测试框架简化为以下两个文件。
karma.conf.js
module.exports = function (config) {
config.set({
//basePath: '/',
// files to include, ordered by dependencies
files: [
{pattern:'node_modules/requirejs/require.js', included:true},
{pattern: 'test.js', included:true}
],
frameworks: ['jasmine'],
browsers: ['Chrome']
})
};
和test.js
define([], function () {
describe("Unit tests", function () {
it("Simple test", function () {
expect(true).toBe(false);
});
});
});
的package.json
{
"devDependencies": {
"jasmine-core": "^2.3.0",
"karma": "^0.12.37",
"karma-chrome-launcher": "^0.1.8",
"karma-jasmine": "^0.3.8",
"karma-requirejs": "^1.1.0"
}
}
如果我按上述方式运行,我会收到“未捕获错误:匿名定义不匹配()”
如果我使用require.js文件“included:false”运行,我会收到“Uncaught ReferenceError:define is not defined”
我也试过“框架:['jasmine','requirejs']”而不是作为文件导入,我也得到一个不匹配的匿名define()错误
测试在没有上述定义的情况下工作,但是想使用Requirejs。
任何帮助都表示赞赏,这让我有点疯狂,似乎不应该这么难。
编辑:我已经看到很多建议尝试包含虚假标志的模式,如上所述,这似乎不起作用。对依赖项包含false,它不知道define方法是什么(没有requirejs导入)。似乎每当我包含对requirejs文件的单个引用时,我都会得到不匹配的匿名错误(指向可能的多个requirejs导入)。
编辑:我也知道一个常见的问题是可以声明define()函数的多个依赖项。我已经包含了package.json中列出的最小依赖项,这些依赖项似乎是让我的karma服务器启动并运行而没有错误。