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.
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
@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. –