javascript - Reflect.getOwnMetadata 不是最新 Aurelia 的 karma 函数

标签 javascript typescript karma-runner aurelia

更新到最新版本的 Aurelia(3 月更新 beta.1.1.4)后,每次运行 karma 测试时都会收到以下错误:

Error: Reflect.getOwnMetadata is not a function
Error loading C:/Software/myproject/test/unit/myclass.spec.ts

我该如何解决?

最佳答案

这与 Aurelia 从 core-js 到自制的 polyfills 的变化有关。缺少 Reflect polyfill,测试无法运行。

这个问题在 Aurelia 导航骨架应用程序中通过每个单元测试文件中的以下导入语句得到解决:

import 'aurelia-polyfills';

我通过仅使用此语句创建一个 setup.ts(或 setup.js resp. to your language)文件解决了这个问题,然后将其列在 karma.config.js 在第一位。

对于 JS 例如:

jspm  : {
  loadFiles: ['test/unit/setup.js', 'test/unit/**/*.js'],
  ...
}

对于 typescript 例如:

files: ['test/unit/setup.ts', 'test/unit/**/*.ts'],
...

关于javascript - Reflect.getOwnMetadata 不是最新 Aurelia 的 karma 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775200/

相关文章:

JavaScript如何找到包含字符串的最接近的类

javascript - 动态删除和添加 JavaScript 文件

javascript - 本地开发中的Angular2慢速自动页面刷新 - Windows

javascript - 在 Gulp Karma 测试中设置调试选项

javascript - config.set 在 Karma 中做什么?

javascript - polymer 模板有邮票事件吗?

javascript - 如何在不加载页面内的情况下确定 url 缩短链接的最终链接?

Angular 单元测试 NullInjectorError : No provider for HttpClient! 错误

javascript - 没有硬编码字符串的 Jasmine spy

angular - 测试方法 setter @Input() Angular 4 Karma