Angular 无法识别新角度项目、生成新零部件和选择器

Angular 无法识别新角度项目、生成新零部件和选择器,angular,Angular,在开始之前,我已经尝试了在网上找到的所有可能的stackoverflow/github解决方案。它们都不起作用。大多数问题涉及用户创建自定义模块,并且存在配置问题。我的情况并非如此,因为这是一个全新的项目,仅生成并显示了一个组件。到目前为止,我已经跟随《英雄角之旅》两次了,效果不错。我已经创建了一个现有的项目,它已经运行了几天,然后突然停止。我还要补充一点,当我导航到网站时,没有控制台错误,一切都成功运行。只有在运行ng测试时才会出现问题 问题 我创建了一个新的angular项目,因为我的旧项目

在开始之前,我已经尝试了在网上找到的所有可能的stackoverflow/github解决方案。它们都不起作用。大多数问题涉及用户创建自定义模块,并且存在配置问题。我的情况并非如此,因为这是一个全新的项目,仅生成并显示了一个组件。到目前为止,我已经跟随《英雄角之旅》两次了,效果不错。我已经创建了一个现有的项目,它已经运行了几天,然后突然停止。我还要补充一点,当我导航到网站时,没有控制台错误,一切都成功运行。只有在运行
ng测试时才会出现问题

问题

我创建了一个新的angular项目,因为我的旧项目突然遇到了一个问题,我无法在app.component.html文件中将新生成的组件的选择器用作html标记。这是我在运行
ng测试时遇到的错误:

Error: Template parse errors:
'app-test' is not a known element:
1. If 'app-test' is an Angular component, then verify that it is part of this module.
2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.
步骤

我运行命令
ng new test project
来创建一个新的角度项目。我进入文件夹,运行了
ng generate component test
。这成功创建了我的测试组件

以下是test.component.ts文件:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html',
  styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}
以下是app.module.ts文件:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { TestComponent } from './test/test.component';

@NgModule({
  declarations: [
    AppComponent,
    TestComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
最后,这里是我的app.component.html文件:

<app-test></app-test>

如果您没有将该组件声明到您的测试床中,那么测试床不会意识到该组件的存在

在测试中,提供如下新组件

TestBed.configureTestingModule({
  declarations: [AppComponent, TestComponent],
})
  .compileComponents();

非常感谢你!我发现angular cli不会自动向测试中添加必要的组件,这非常令人惊讶,因为在创建组件时,它会自动填充几乎所有其他内容。另外,这是否意味着对于我添加到NgModule中声明/导入部分的每个模块/组件,我都需要添加到app.component.spec.ts文件中?它不会将组件添加到测试床,因为您应该模拟组件,而不是使用真实的组件。是的,对于您添加到组件中的每个依赖项,您都应该在您的测试床上添加(模拟)它