我刚刚将一个角度库项目迁移到角度版本6(这使得构建库非常容易)。我使用ng generate library
在this guide之后的角度项目中创建了一个子项目。我的主要项目是一个应用程序,开发时可以使用它查看运行中的库。
现在,我可以运行类似ng test my-library
的测试。但是很不幸,我想使用目标环境(即IE)测试我的库。我配置了polyfills,现在尝试使用ng test my-library --browsers=IE
,但是polyfills似乎仅受主要应用程序的尊重-我的库将很快退出测试,并出现与Polyfills相关的错误(对象不支持{{ 1}}-大致翻译为我的环境是德语)。
有没有办法告诉angular我想“多填充”运行我的库测试?谢谢!
答案 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"
],
…
我宁愿将其添加到配置文件中,因为这是标准方式,并且对于新人来说,由于已经熟悉该项目,因此更容易加入该项目。