Angular Karma 没有运行所有单元测试

标签 angular unit-testing jasmine karma-jasmine

我写了两个单元测试,但没有执行。 请查看下面的两个屏幕截图。

怎么了,为什么不执行?

如您所见,我收到消息: “执行了 47 次中的 45 次 也意味着,找到了测试,只是没有执行。 怎么可能?

弗兰克

@Terminal

@Karma

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(代表焦点)作为 fdescribeit 作为 fit 前缀来实现。

fdescribe 运行该组件中实现的所有测试规范。 fit 只运行那个特定的测试规范。可以在多个测试规范上执行 fit,这将运行多个测试 scpe,而忽略其他。

要排除少数测试规范或整个组件,请分别使用 xitxdescribe

请查看这些特殊关键字的规范。您的问题可能会得到解决。

关于Angular Karma 没有运行所有单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49650545/

相关文章:

c# - 上传文件报错 415 Unsupported Media Type

unit-testing - 单元测试 Controller 时无法模拟 Grails 服务方法 - MissingMethodException

java - Mockito - 拦截模拟上的任何方法调用

javascript - Jasmin spy 仅在sied-on函数被包装时才起作用,但在委托(delegate)给时则不起作用

angular - Ag-grid Angular 如何获取 Header 上的点击事件?

Angular 2/4 karma 测试

javascript - 如何将对象放入另一个对象 Angular/Javascript

c++ - googletest - 找出意外调用的位置

javascript - 使用自定义匹配器的 jasmine 2.0 测试失败 : undefined is not a function

javascript - 如何测试 JavaScript/Jasmine 中的随机功能?