为什么在创建库组件时Angular CLI@7.3.9不会使用新的测试目标来更新angular.json

时间:2019-05-19 18:50:12

标签: angular-cli

使用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不建议测试新创建的组件,但我进行了测试并观察到此处描述的故障。

复制步骤

  • 使用angular-cli@7.3.9创建一个库工作区
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项目对象,其中包含对新创建的库组件及其单元测试的描述。

1 个答案:

答案 0 :(得分:0)

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

我在最后一封给Alan的电子邮件中提醒他,一个拥有很多组件库,正在开发新组件并希望将组件定位到测试中的开发人员应该能够做到这一点。一个简单的ng命令。