javascript - Karma 无效的配置文件

标签 javascript unit-testing karma-runner

为了使 karma 配置文件更容易配置路径,我使用变量来存储路径的某些部分。

var publicfolder = "public"
var mypath = "packages/vendor/package/";

files: [
  publicfolder+'/assets/libs/jquery/dist/jquery.js',
  publicfolder+'/assets/libs/angular/angular.js',
  publicfolder+'/assets/libs/**/*.js',
  publicfolder+'/app/**/*.js',
  mypath +'/public/app/**/*.test.js',
  mypath +'/public/app/**/*.html'
],

preprocessors: {
    mypath +'/public/app/**/*.html':['ng-html2js']
},

但是,当我运行测试时,出现错误:

E:\www\project\karma.conf.js:83
    mypath +'/public/app/**/*.html':['ng-html2js']
           ^
ERROR [config]: Invalid config file!
  SyntaxError: Unexpected token +
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

我的问题是为什么?为什么我不能在那里放置变量?为什么可以将其放入 files 数组中,但不能放入 预处理器 中?

最佳答案

preprocessors 是一个对象,您不能使用 initializer notation 将表达式放入对象键中。如果您使用 square bracket notation 设置 key ,则可以使用表达式。

所以在这种情况下你可以这样做:

var mypath = "packages/vendor/package/";
var preprocessors = {};
preprocessors[mypath +'/public/app/**/*.html'] = ['ng-html2js'];

可以在 files 数组中使用表达式,因为您只是创建常规字符串,而不是对象键。

关于javascript - Karma 无效的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31936832/

相关文章:

java - 如何测试Java中的IO问题?

javascript - 如何模拟 ES6 模块的导入?

node.js - sails 测试 Controller 未完全执行

windows-8 - Testacular安装失败,没有vcbuild.exe

Angular4 karma 代理通配符

javascript - 我可以在 xampp (localhost) 中运行我的项目,但即使在配置后尝试在另一台计算机中运行时我也无法运行

php - 无需重新加载页面的简单计算器

javascript - 如何使用toggle()在表单更改时更新UI(例如,当单击复选框时)

javascript - 我可以用数字动态更改图像然后将其打印为 PDF 吗

javascript - 跨多个代码库共享 karma、eslint 等文件