在运行npm测试时,我的组件出现此错误 - >
**Can't bind to 'formGroup' since it isn't a known property of
'form'.
("
</div>
<form [ERROR ->][formGroup]="loginForm" text-center>
<ion-list>
"): ng:///DynamicTestModule/Login.html@18:6
'ion-label' is not a known element:
1. If 'ion-label' is an Angular component, then verify that it is part
of this module.
2. If 'ion-label' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA'
to the '@NgModule.schemas' of this component to suppress this message.
("
<ion-item>
[ERROR ->]<ion-label floating>Email</ion-label>
<ion-input type="email" formControlName="email" [class.inva"):
ng:///DynamicTestModule/Login.html@25:4
'ion-input' is not a known element:
1. If 'ion-input' is an Angular component, then verify that it is part
of this module.
2. If 'ion-input' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<ion-item>
<ion-label floating>Email</ion-label>
[ERROR ->]<ion-input type="email" formControlName="email" [class.invalid]="!loginForm.controls.email.valid && ("): ng:///DynamicTestModule/Login.html@26:4
'ion-item' is not a known element:
** 1。如果'ion-item'是Angular组件,则验证它是否是此模块的一部分。
2.如果'ion-item'是Web组件,则将'CUSTOM_ELEMENTS_SCHEMA'添加到此组件的'@ NgModule.schemas'enter code here
以禁止显示此消息。 (”
[错误 - &gt;] ****
这是我的test.ts
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { getTestBed, TestBed } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { App, Config, Form, IonicModule, Keyboard, DomController, MenuController, NavController, Platform } from 'ionic-angular';
import { ConfigMock } from './mocks';
// Unfortunately there's no typing for the `__karma__` variable. Just
declare it as any.
declare var __karma__: any;
declare var require: any;
// Prevent Karma from running prematurely.
__karma__.loaded = function (): void {
// noop
};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting(),
);
// Then we find all the tests.
let context: any = require.context('./', true, /\.spec\.ts/);
// And load the modules.
context.keys().map(context);
// Finally, start Karma to run the tests.
__karma__.start();
``
答案 0 :(得分:8)
配置测试套件时是否导入了IonicModule? 像(在test.ts中)的东西:
public static configureIonicTestingModule(components: Array<any>): typeof TestBed {
return TestBed.configureTestingModule({
declarations: [
...components,
],
providers: [
App, Form, DomController
],
imports: [
FormsModule,
IonicModule, // <- this here
],
});
}