Angular创建的所有样板测试均无法构建。举个例子:
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { CheckboxComponent } from './checkbox.component';
fdescribe('CheckboxComponent', () => {
let component: CheckboxComponent;
let fixture: ComponentFixture<CheckboxComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ CheckboxComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CheckboxComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
[每当我运行ng test
时都会失败,并显示Illegal state: Could not load the summary for directive CheckboxComponent
。我们大约有十二个组件,它们都以这种方式失效。
该应用程序以开发和生产模式构建并运行,没有任何问题。
此问题是由完全不相关的指令单元测试失败引起的。
令人沮丧的是,只有CheckboxComponent测试套件正在运行(带有fdescribe
标记,并且没有错误给出了另一个测试套件的正确名称(应该排除在外,因为它没有fdescribe
标签)。
解决方案是将所有102个测试规范文件从.spec.ts
重命名为.spec.bak
,并将它们一个接一个地添加,以找出哪个测试失败。