2017-04-05 9 views
0

Ich benutze Karma + Jasmine, um meine Webpack-basierte eckige2 App zu testen.Jasmine + Webpack: Hersteller Jasmine globale Funktionen

Um ein Projekt für die Entwicklung zu erstellen, benutze ich vendor.ts für Winkelabhängigkeiten, um die Hauptdatei so klein wie möglich zu halten und die Zeit für die Neukompilierung des Webpacks zu reduzieren.

// Angular 
import '@angular/platform-browser'; 
import '@angular/platform-browser-dynamic'; 
import '@angular/core'; 
import '@angular/common'; 
import '@angular/http'; 
import '@angular/router'; 
import '@angular/forms'; 

// RxJS 
import 'rxjs'; 

import 'zone.js'; 
import 'reflect-metadata'; 

Ich habe test.ts geschaffen, in dem ich alle meine Tests importieren. Ich kompiliere es jedes Mal vor karma start.

Das Problem ist, dass das letzte test.js enthält nicht nur Tests Code, sondern die gesamte Jasmin-Bibliothek. Ich möchte es auch verkaufen, konnte aber keinen richtigen Lieferantenimport finden.

Sieht aus wie Jasmine ist globale Bibliothek standardmäßig, und ich konnte @types/jasmine-core in dt nicht finden.

Könnte mir jemand dabei helfen?

Antwort

0

Ok, es scheint, dass ich falsch lag in der Wahrnehmung von Jasmine als etwas, das ich verkaufen muss. Funktionen wie describe und it werden auf jeden Testlauf verfügbar sein, unabhängig davon, ob sie in den kompilierten Dateien vorhanden sind oder nicht.

Das einzige, was ich in meinem Fall Hersteller erforderlich war expect, und ich habe erreicht, dass

import * as expect from "expect"; 
expect('true').toBe('true'); //doesn't work without it, for some reason 

in der Lieferantendatei durch Hinzufügen.