Karma Jasmine测试不使用Requirejs

时间:2017-01-23 18:53:06

标签: unit-testing requirejs karma-runner karma-jasmine

我似乎在将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服务器启动并运行而没有错误。

0 个答案:

没有答案