2016-03-05 5 views
7

Ich sehe den folgenden Fehler beim Ausführen meiner angular2 Unit Tests mit Karma mit Jenkins.Karma-Fehler beim Ausführen von angular2 Tests über Jenkins auf Linux

Meine Tests laufen gut, wenn ich sie auf meinem lokalen Rechner (Windows) ausführe, aber wenn ich den Test über jenkins unter Linux ausführe, erhalte ich den folgenden Fehler.

Missing error handler on `socket`. 
TypeError: (msg || "").replace is not a function 
at /home/hudson/.hudson/jobs/workspace/pjt/node_modules/karma/lib/reporter.js:45:23 

Meine Tests starten nie irgendwelche Ideen, was dies verursachen könnte. Ich habe mir den Karma-Quellcode angesehen und konnte nicht herausfinden, warum es ein Problem geben würde.

return function (msg, indentation) { 
// remove domain and timestamp from source files 
// and resolve base path/absolute path urls into absolute path 
msg = (msg || '').replace(URL_REGEXP, function (_, prefix, path, __, ___, line, ____, column) { 
    if (prefix === 'base') { 
    path = basePath + path 
    } 
    // more code here ... 

Ich verwende PhantomJS als Testläufer nur für den Fall, dass sowohl lokal als auch auf jenkins relevant ist.

Ich würde mich über Hinweise freuen, was das Problem sein könnte.

+0

Mein erster Instinkt ist, dass Ihr lokaler Rechner Dinge zur Verfügung hat, die auf dem Jenkins Build Server/Slave nicht verfügbar sind. Sind Sie sicher, dass der Buildslave korrekt eingerichtet ist, um die Tests ausführen zu können? Haben Sie versucht, sie manuell auf diesem Server auszuführen? – Cronax

+0

@Cronax Ich habe keinen direkten Zugriff auf die Jenkins-Maschine, die gerade noch sortiert ist, aber ich bin gerade dabei, sie zu bekommen. Ich werde versuchen, manuell zu erstellen und Sie auf dem Laufenden zu halten. –

Antwort

3

Um meine eigene Frage zu diesem Thema zu beantworten.

Es stellte sich heraus, dass das Problem mit meinem Abschnitt Karma-Dateien war.

{ pattern: 'node_modules/rxjs/bundles/rx.js', included: true, watched: true } 

Der Dateiname für das RX-Modul ist node_modules/rxjs/Bündel/Rx.js

Linux wobei dies Groß- und Kleinschreibung ist der Grund, es auf einer Windows-Entwicklungsumgebung gearbeitet und auf dem Linux fehlgeschlagen Server bauen.

Die 404-Nachricht für die Datei rx.js war in den Protokollen vorhanden, aber ich vermisste unter vielen anderen Debug-Protokollierung.

Lektion gelernt :)

Verwandte Themen