测试主机组件始终给出虚假的“未知元素”错误,可能是因果Webpack问题?

问题描述

我正在尝试使用Angular文档中所述的test host pattern,在规范中您创建了一个超轻量级的组件,该组件的模板是仅包含被测组件的文字

@Component({
    selector: "simple-test",template: "<div>Hi</div>",})
class SimpleComponent {}

@Component({
    template: `<simple-test></simple-test>`
})
class NgModelTestHost {}

describe("test host example",() => {
    let ngmFixture: ComponentFixture<NgModelTestHost>;

    beforeEach(waitForAsync(() => {
        return Testbed.configureTestingModule({
            imports: [
                CommonModule,],declarations: [
                SimpleComponent,NgModelTestHost,schemas: [NO_ERRORS_SCHEMA],}).compileComponents().then(() => {
            ngmFixture = testbed.createComponent(NgModelTestHost);
        });
    }));

    it("exists",() => {
        expect(ngmFixture).tobedefined();
    });
});

据我所知,这与Angular文档中上面链接的示例完全一样。运行测试时,该测试立即成功,但是几秒钟后,我在控制台上收到一个虚假的error NG8001: 'simple-test' is not a kNown element:错误

使用karma-webpack构建和运行测试。我认为Webpack在后台异步运行模板编译器(检查器?),并且出于某种原因,它编译该组件而没有成为测试模块的一部分,如果有意义的话。 (如果它遵循测试模块的配置,那么还会看到NO_ERRORS_SCHEMA,对吗?)

我不确定如何从这里继续。我还没有完成一个完整的最小化repro,因为设置karma-webpack很麻烦,而且我的webpack配置非常复杂。我希望这是足够的信息,至少可以指向正确的方向,以调整我的业力或Webpack配置并阻止这种情况的发生。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)