首页 > 解决方案 > 为什么 Angular CLI@7.3.9 在创建库组件时不会用新的测试目标更新 angular.json

问题描述

创建新组件时的预期行为是使用angular-cli描述angular.json.projects新创建组件的条目进行更新。观察到的行为是angular-cli不这样做的。

ng test newComponent我在运行并收到消息后发现了这一点Project 'inline' does not support the 'test' target.

ng test newComponent我更新后的工作angular.json.projects来描述新创建的组件。

我正在将 Angular 2 组件库迁移到新的 Angular 7 Workspace 模型。我正在使用 Todd Palmer 的The Angular Library Series - Creating a Library with Angular CLI recipe从头开始​​构建它。

尽管该配方不建议测试新创建的组件,但我确实并观察到了此处描述的故障。

重现步骤

ng new workspace --create-application=false
ng generate library library --prefix=abc
ng generate application living-style-guide
ng generate component newComponent —project=library
ng test newComponent —project=library

观察到的行为 最后一个命令失败并显示以下消息

Project 'newComponent' does not support the 'test' target.
Error: Project 'newComponent' does not support the 'test' target.
    at TestCommand.initialize (./node_modules/@angular/cli/models/architect-command.js:53:19)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

预期行为 angular-cli 使用新创建的库组件的描述更新 angular.json 项目对象,并且它们的单元测试通过。

标签: angular-cli

解决方案


与 angular-cli 的 Alan Agius 讨论了这个问题。Alan 向我解释说,ng test <target>它仅适用于projects,而不适用于库组件;他建议我关注他们的问题# 3603

我结束了我给 Alan 的最后一封电子邮件,提醒他一个开发人员拥有一个包含大量组件的库,正在开发一个新组件,并希望以开发中的组件为目标进行测试,应该能够通过一个简单的ng命令来完成.


推荐阅读