我写了两个单元测试,但没有执行。 请查看下面的两个屏幕截图。
怎么了,为什么不执行?
如您所见,我收到消息: “执行了 47 次中的 45 次” 也意味着,找到了测试,只是没有执行。 怎么可能?
弗兰克
describe('LanguageSelectorComponent', () => {
let component: LanguageSelectorComponent;
let fixture: ComponentFixture<LanguageSelectorComponent>;
let find: any;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [LanguageSelectorComponent],
imports: [DxModule, RouterTestingModule],
providers: [HttpClient, HttpHandler, NGXLogger, LanguageSelectorService]
});
fixture = TestBed.overrideComponent(LanguageSelectorComponent, {
set: {
providers: [{ provide: LanguageSelectorService, useClass: MockLanguageSelectorService }]
}
}).createComponent(LanguageSelectorComponent);
fixture.detectChanges();
component = fixture.componentInstance;
find = (de => selector => de.query(By.css(selector)))(fixture.debugElement);
});
it('should create', () => {
expect(component).toBeTruthy();
});
it('should create dx select box', () => {
expect(find('dx-select-box')).toBeDefined();
});
});
最佳答案
您可以使用 karma-jasmine 只运行少量测试用例。这可以通过在 describe
前面加上 f(代表焦点)作为 fdescribe
或 it
作为 fit
前缀来实现。
fdescribe
运行该组件中实现的所有测试规范。 fit
只运行那个特定的测试规范。可以在多个测试规范上执行 fit
,这将运行多个测试 scpe,而忽略其他。
要排除少数测试规范或整个组件,请分别使用 xit
或 xdescribe
。
请查看这些特殊关键字的规范。您的问题可能会得到解决。
关于Angular Karma 没有运行所有单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49650545/