карма-машинопись не загружает шаблоны и стили - PullRequest
1 голос
/ 25 апреля 2019

karma-typescript не компилирует мои файлы jade или sass, как обычно webpack. Как мне получить шаблоны для компиляции, чтобы я мог проверить?

Возьмите два файла ниже:

messages.ts

import { Component }     from '@angular/core';

@Component({
  selector: 'messages',
  template: require('./messages.jade'),
  styles: [require('./messages.scss').toString()],
})
export class MessagesComponent {

  constructor() {}

}

mesages.spec.ts

import { TestBed, async, inject, ComponentFixture } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { MessagesComponent } from './messages'

describe('MessagesComponent', () => {
    let component: MessagesComponent;
    let fixture:   ComponentFixture<MessagesComponent>;

    beforeEach(async(() => {
      TestBed.configureTestingModule({
        declarations: [
            MessagesComponent
        ],
      }).compileComponents();

      fixture = TestBed.createComponent(MessagesComponent);
      component = fixture.componentInstance;

    }));

    it('should be defined', () => {
        expect(component).toBeDefined();
    })
  });

Мой webpack.config.js имеет следующие правила:

    rules: [
      { test: /\.ts$/, use: ['ts-loader', 'angular2-template-loader'] },
      { test: /\.html$/, use: 'html-loader' },
      { test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, use: 'null-loader' },
      { test: /\.css$/, use: 'css-loader' },
      { test: /\.jade$/, use: ['html-loader', 'jade-html-loader'] },
      { test: /\.scss$/, use: ['style-loader', 'css-loader', 'resolve-url-loader', 'sass-loader'] }
    ]

Когда я запускаю karma, я получаю следующую ошибку:

Failed: This test module uses the component MessagesComponent which is using a "templateUrl" or "styleUrls", but they were never compiled. Please call "TestBed.compileComponents" before your test.
...