【问题标题】:ng-bootstrap angular config karma jasmineng-bootstrap 角度配置 业力 jasmine
【发布时间】:2018-07-09 03:54:12
【问题描述】:

收到消息

如果 'ngb-xx' 是 Angular 组件,则验证它是 这个模块

对于我尝试的每个角度引导组件

设置过程

npm install angular-cli
ng new project 
CD project
npm install 
npm install  --save bootstrap 
npm install --save @ng-bootstrap/ng-bootstrap

在 app.module.ts 中

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http' ;

import { NgbModule } from '@ng-bootstrap/ng-bootstrap' ;

import { AppComponent } from './app.component';
import { NgForm } from '@angular/forms/src/directives/ng_form';


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    NgbModule.forRoot()
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

看起来一切都在使用 ng-bootstrap 和 angular

但是业力和茉莉花不断地抛出错误,例如

失败:模板解析错误:“ngb-tab”不是已知元素:

  1. 如果 'ngb-tab' 是 Angular 组件,则验证它是该模块的一部分。

  2. 如果“ngb-tab”是 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。

("

加勒特

失败:模板解析错误:无法绑定到“dismissible”,因为它 不是“ngb-alert”的已知属性。

  1. 如果 'ngb-alert' 是一个 Angular 组件并且它具有 'dismissible' 输入,则验证它是该模块的一部分。

  2. 如果“ngb-alert”是一个 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。

  3. 要允许任何属性将“NO_ERRORS_SCHEMA”添加到此组件的“@NgModule.schemas”。

看起来我在业力和/或茉莉花的配置中遗漏了一些东西

请帮忙 // Karma 配置文件,更多信息见链接 //https://karma-runner.github.io/1.0/config/configuration-file.html

karma.conf.js

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular/cli/plugins/karma')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    angularCli: {
      environment: 'dev'
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};

【问题讨论】:

  • 您需要在 ngmodule 的声明中添加 ngalert 和 ngb-tab
  • 你的因果代码在哪里?
  • @Aravind 业力代码已添加,谢谢
  • @Pascal 你添加了业力配置而不是业力代码
  • 您在测试用例或代码中遇到错误?

标签: angular jasmine karma-runner karma-jasmine ng-bootstrap


【解决方案1】:

您的测试缺少 NgbModule 导入,要修复它,您应该是

  • 导入模块

    import { NgbModule } from '@ng-bootstrap/ng-bootstrap' ;
    
  • 将其添加到 TestBed 导入中

    TestBed.configureTestingModule({
        imports: [NgbModule, ...],
        declarations: [...],
        providers: [...]
    });
    

【讨论】:

  • 包括css吗?
  • jasmine 页面的 css 文件看起来缺少 css
猜你喜欢
  • 1970-01-01
  • 2020-08-06
  • 2020-11-14
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-04
相关资源
最近更新 更多