相关疑难解决方法(0)

角度测试失败,因为Component是2个模块声明的一部分

我在Angular 4中创建了一些测试.我有一个使用PrettyJsonCompont的组件,以便向用户显示格式良好的json.

当我运行测试时,我的几个组件测试失败并显示相同的消息.

失败:类型PrettyJsonComponent是2个模块的声明的一部分:PrettyJsonModule和DynamicTestModule!请考虑将PrettyJsonComponent移动到导入PrettyJsonModule和DynamicTestModule的更高模块.您还可以创建一个新的NgModule,它导出并包含PrettyJsonComponent,然后在PrettyJsonModule和DynamicTestModule中导入该NgModule.

这是我的测试的样子.

import {async, ComponentFixture, TestBed} from '@angular/core/testing';

import {ContentItemModalComponent} from './content-item-modal.component';
import {DialogService} from 'ng2-bootstrap-modal';
import {ContentItemService} from '../services/content-item.service';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {FroalaEditorModule, FroalaViewModule} from 'angular-froala-wysiwyg';
import {HttpModule} from '@angular/http';
import {MainModel} from '../models/main-model';
import {PrettyJsonComponent, PrettyJsonModule} from 'angular2-prettyjson';

describe('ContentItemModalComponent', () => {
  let component: ContentItemModalComponent;
  let fixture: ComponentFixture<ContentItemModalComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        ReactiveFormsModule,
        FormsModule,
        FroalaEditorModule.forRoot(),
        FroalaViewModule.forRoot(),
        HttpModule,
        PrettyJsonModule
      ],
      declarations: [ContentItemModalComponent, PrettyJsonComponent],
      providers: [
        DialogService,
        ContentItemService,
        MainModel
      ],
    })
      .compileComponents(); …
Run Code Online (Sandbox Code Playgroud)

angular

13
推荐指数
1
解决办法
5043
查看次数

使用 Jasmine 进行 Angular5 测试。组件是 2 个模块声明的一部分:AppModule 和 DynamicTestModule

我正在编写第一个测试并处理此错误:

错误:类型 SearchComponent 是 2 个模块声明的一部分:AppModule 和 DynamicTestModule!请考虑将 SearchComponent 移至导入 AppModule 和 DynamicTestModule 的更高模块。您还可以创建一个新的 NgModule 来导出并包含 SearchComponent,然后在 AppModule 和 DynamicTestModule 中导入该 NgModule。

在我的应用程序中,我只有一个模块:AppModule.ts. 并且SearchComponent只在那里声明。如果我创建第二个模块(又名 ChildModule)并将 SearchComponent 移动到那里,错误消息将具有相同的内容,但模块的名称将从 AppModule 更改为 ChildModule。我在我拥有的每个组件中都有相同的错误。

如果我从规范文件中的导入中删除 AppModule 并添加NO_ERRORS_SCHEMA,错误就会消失。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule  } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';
import { OtherComponentOne} from …
Run Code Online (Sandbox Code Playgroud)

testing unit-testing jasmine angular

3
推荐指数
1
解决办法
4509
查看次数

组件是Angular中2个模块的声明的一部分

我创建了一个名为commonmod.component.ts的组件,该组件包含在其他两个模块(abc和def)中。

abc.module.ts

import { commonmod } from '../commonmod/commonmod.component';
@NgModule({
  declarations: [
    commonmod
  ]
})
Run Code Online (Sandbox Code Playgroud)

def.module.ts

import { commonmod } from '../commonmod/commonmod.component';
@NgModule({
  declarations: [
    commonmod
  ]
})
Run Code Online (Sandbox Code Playgroud)

当我将abc模块中的一页重定向到def模块中的另一页时,它使我跟随以下错误。

错误错误:未捕获(承诺):错误:类型commonmod是2个模块的声明的一部分:abcand def!请考虑将commonmod移至导入abc和def的更高模块。您还可以创建一个新的NgModule,以导出并包括commonmod,然后在abcand def中导入该NgModule。错误:类型commonmod是2个模块的声明的一部分:abc和def!请考虑将commonmod移至导入abcand def的更高模块。您还可以创建一个新的NgModule,将其导出并包括commonmod,然后在abc和def中导入该NgModule。

typescript angular

2
推荐指数
2
解决办法
8324
查看次数

标签 统计

angular ×3

jasmine ×1

testing ×1

typescript ×1

unit-testing ×1