angular - karma-typescript laster ikke maler og stiler
karma-typescript kompilerer ikke mine jade- eller sass-filer slik webpack vanligvis gjør. Hvordan får jeg templaten til å kompilere slik at jeg kan teste?
Ta de to filene nedenfor:
meldinger.ts
import { Component } from '@angular/core';
@Component({
selector: 'messages',
template: require('./messages.jade'),
styles: [require('./messages.scss').toString()],
})
export class MessagesComponent {
constructor() {}
}
meldinger.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();
})
});
Min webpack.config.js har følgende regler:
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'] }
]
Når jeg kjører karma, får jeg følgende feil:
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.