Angular 2单元测试/ Karma测试运行器:仅报告“包含:真实”karma-test-shim

时间:2016-10-21 15:57:28

标签: unit-testing angular karma-runner electron karma-coverage

我只获得任何{included:true}文件的测试覆盖率结果,在我的例子中只有karma-test-shim.js。我无法生成我的测试文件{included:true},因为SystemJs应该在karma-test-shim中加载它们。试图使我的测试文件{included:true}导致“不允许匿名系统寄存器调用”错误。我的测试运行良好{included:false}。使用SystemJS在karma-test-shim中加载测试文件,并生成测试文件{included:false},是Angular 2 github repos遵循的标准格式,包括angular2-quickstart repo。

我在我的tsconfig.json文件中使用“system”作为模块格式而不是“commonjs”,而电子浏览器代替Chrome(通过karma-electron NPM包),以及一行Electron需要垫片 karma .loaded行上方的karma-test-shim文件 - 所有这些共同使得“需要”节点模块(如fs,path或已安装的节点模块)能够在没有预先捆绑的情况下在测试中工作。我的应用程序是使用Electron和Angular 2的桌面应用程序。

除了这些差异之外,我与https://github.com/juliemr/ng2-test-seed的测试设置完全相同(karma.conf.js和karma-test-shim.js)。

这是我的基本karma.conf.js文件:

module.exports = function(config) {
    config.set({

        basePath: 'src/', // all the files in the files config  parameter, are searched for relative to this path

        frameworks: ['jasmine'],

        files: files, // the files parameter exported from another file

        preprocessors: {'*.js': ['coverage']},

        reporters: ['spec', 'coverage'], //report to console

        port: 9876,

        colors: true,

        browsers: ['Electron'],

        singleRun: false // true is necessary for CI. Set to false so  the browser is on long enough to debug.

    })
}

0 个答案:

没有答案