Angular 6:带有IE(Polyfills)的ng测试库

时间:2018-08-10 07:16:07

标签: angular internet-explorer angular6

我刚刚将一个角度库项目迁移到角度版本6(这使得构建库非常容易)。我使用ng generate librarythis guide之后的角度项目中创建了一个子项目。我的主要项目是一个应用程序,开发时可以使用它查看运行中的库。

现在,我可以运行类似ng test my-library的测试。但是很不幸,我想使用目标环境(即IE)测试我的库。我配置了polyfills,现在尝试使用ng test my-library --browsers=IE,但是polyfills似乎仅受主要应用程序的尊重-我的库将很快退出测试,并出现与Polyfills相关的错误(对象不支持{{ 1}}-大致翻译为我的环境是德语)。

有没有办法告诉angular我想“多填充”运行我的库测试?谢谢!

2 个答案:

答案 0 :(得分:1)

毕竟,我能够非常简单地解决此问题-我将 polyfills.ts 文件复制到了子项目文件夹中,并将导入添加到了特定于库的 test.ts 文件(该文件是在我生成库项目时自动创建的。)

import './polyfills';

答案 1 :(得分:0)

还可以将其添加到您的 angular.json

…
"test": {
    "builder": "@angular-devkit/build-angular:karma",
    "options": {
      "main": "projects/my-library/src/test.ts",
      "tsConfig": "projects/my-library/src/tsconfig.spec.json",
      "karmaConfig": "projects/my-library/src/karma.conf.js",
      "polyfills": "projects/my-library/src/polyfills.ts"
    },
}
…

和您的 projects / my-library / src / tscofnig.spec.json

…
"files": [
  "test.ts",
  "polyfills.ts"
],
…

我宁愿将其添加到配置文件中,因为这是标准方式,并且对于新人来说,由于已经熟悉该项目,因此更容易加入该项目。