Angular 库二级入口点测试代码覆盖率问题
Posted
技术标签:
【中文标题】Angular 库二级入口点测试代码覆盖率问题【英文标题】:Angular library secondary entrypoint test code coverage problem 【发布时间】:2021-01-02 08:11:44 【问题描述】:我正在使用带有辅助入口点的 Angular 库 我的库文件夹结构是
我的图书馆 二级入口1 服务 1 辅助入口点 2 服务 2 源代码我使用了这个命令ng test my-library --code-coverage
辅助入口点的服务测试不执行。
然后我尝试将“test.ts”上下文路径('./')更改为 src 文件夹下的 '../'。 执行了测试,但没有创建代码覆盖率。
如何为辅助入口点执行测试?
【问题讨论】:
【参考方案1】:这是因为您项目的源根目录指向projects/your-library/src
,并且在运行测试时它不会考虑其他入口点。
要解决这个问题,只需将“angular.json”文件中的 sourceRoot 属性更改为 projects/your-library
,其他一切都应该可以正常工作。
【讨论】:
我有多个二级入口。所以我不能在 angular.json 上设置 sourceroot 属性 所有辅助入口点都具有相同的根,因此按照您在 angular.json 中的示例,您应该设置"sourceRoot": "projects/my-library"
而不是 "sourceRoot": "projects/my-library/src"
,这是 Angular 设置的默认值
我得到了 Mert 的答案,方法是将 test.ts 文件移动到“project/my-library”级别并将我的 tsconfig.spec.ts 文件从“src/test.ts”更改为“test.ts”以上是关于Angular 库二级入口点测试代码覆盖率问题的主要内容,如果未能解决你的问题,请参考以下文章
Angular 6 代码覆盖率...如何在应用程序的代码覆盖率中排除本地库?
Angular 单元测试中业力代码覆盖率报告中的 1x 3x 等是啥意思?