Почему Angular CLI@7.3.9 не обновляет angular.json новой целью теста при создании библиотечного компонента - PullRequest
1 голос
/ 19 мая 2019

Ожидаемое поведение при создании нового компонента с использованием 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. Я создаю его с нуля, используя Тодд Палмер Серия Angular Library - Создание библиотеки с помощью Angular CLI рецепт.

Хотя рецепт не рекомендует тестировать только что созданный компонент, я делал и наблюдал описанную здесь неисправность.

Шаги для воспроизведения

  • используя 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 голосов
/ 21 мая 2019

Обсуждали это с Аланом Агиусом из angular-cli.Алан объяснил мне, что ng test <target> предназначен для работы только для projects, а не для компонентов библиотеки;он предложил мне следить за их вопросоми желает нацелить компонент в разработке для тестирования, должен быть в состоянии сделать это с помощью простой команды ng.

...