【发布时间】:2018-01-28 23:49:10
【问题描述】:
假设我有一个非常简单的“创建”单元测试,ng cli 为您生成:
describe('MyComponent', () => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [MyComponent],
imports: [
HttpClientTestingModule,
FormsModule,
RouterTestingModule.withRoutes([{ path: 'home', redirectTo: '/' }])
],
providers: [SomeService1, SomeService2, { provide: SomeService3, useValue: {} }],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
现在,当我像 ng test --browser=Chrome 这样运行此测试时,我不是查看 Karma 结果页面,而是查看我的组件。
我的 CLI 版本是 1.6.3、Karma 1.7.1、Angular 5.2.0、OS macOS。
更新我的浏览器被捕获,业力加载,测试运行,但我看到的不是业力结果,而是全屏组件,因为它的 css 覆盖了他们的结果。如果我在 DOM 中找到 div 并将其删除,我可以看到 Karma 结果。
我只是希望 Angular 删除那个节点。
【问题讨论】:
-
是什么让您认为不应该这样做?
-
@estus 因为如果我不测试组件,我实际上可以看到一个页面,显示我的测试和成功/通过。但如果我有这个,我看不到那个结果,我只看到我的组件在一切之上。
-
报告应该在节点窗口(@987654328@)中观察。不在浏览器中。例如,你甚至不会有浏览器窗口来查看无头 Chrome。
-
@estus 是的,我在 Ci 上知道(我们在 PhatnomJS 上)我们收到了报告,一切都很甜蜜。我可以在本地获取控制台中的错误。但我想了解为什么组件测试会发生这种情况,以及这是否是一种可以控制的行为。
-
您的行为是默认的。它可以由 Karma 配置中定义的自定义 Karma 报告器控制。我想这个会起作用,npmjs.com/package/karma-jasmine-html-reporter
标签: angular karma-jasmine