Frage

Ich führe JUNIT Nightly Builds auf meinem Computer als geplante Aufgabe in Windows XP aus. Meine Anwendung verwendet JAXB, daher müssen einige der Tests XSD -Schemas mit dem System ClassPath verweisen. Wenn der nächtliche Build läuft, während ich nicht am Computer bin, bekomme ich einen solchen Fehler:

Java.lang.Exception: Schema myschema.xsd nicht aus dem ClassPath laden

Wenn ich den Build jedoch manuell ausführe, bekomme ich keinen solchen Fehler. Die Umgebungsvariable für den Ort meiner Schemas ist a System Variable, keine Benutzervariable, daher weiß ich nicht, was diesen Fehler verursachen könnte. Was könnte Ursache für diesen Fehler sein?

BEARBEITEN: Alternativen wie Hudson sind nicht das, wonach ich frage. Ich bitte um eine Lösung für die oben beschriebene Technologie (Stapeldatei als geplante Aufgabe).

War es hilfreich?

Lösung

Mein Verdacht ist, dass sich Ihr Arbeitsverzeichnis von dem unterscheidet, was Sie erwarten (und nicht die Klassenpfadvariable). Es ist nicht sofort offensichtlich, wenn Sie diese geplante Aufgabe als Benutzer oder als Systemaufgabe ausführen. In beiden Fällen lohnt es sich, genau herauszufinden, wo die Aufgabe ausgeführt wird.

Während ich automatische Builds mithilfe von Windows XP -geplanten Aufgaben eingerichtet habe (genau wie Sie es jetzt tun), verwenden wir derzeit derzeit Tempomat. In der Zusammenfassung ist dies nicht viel anders als das, was Sie tun (regelmäßig ausführen), aber es Erhöht Ihre Flexibilität. Hier ist die wertvollste Fähigkeit von CruiseControl darin, festzustellen, dass Änderungen begangen wurden und nur den Build betreiben dann. Innerhalb von 10 Minuten nach einem Commit finden wir jetzt über kaputte Builds, gebrochene Unit -Tests usw..

Andere Tipps

Hudson ist eine weitere kontinuierliche Integrationsmotor, die sehr sehr einfach zu richten ist:

Hudson bietet die folgenden Funktionen an:

  • Einfache Installation: Just Java -Jar Hudson.war oder bereitet sie in einem Servlet -Behälter ein. Keine zusätzliche Installation, keine Datenbank.
  • Einfache Konfiguration: Hudson kann vollständig von der freundlichen Web-GUI mit umfangreichen Fehlerprüfungen im Fliege und Inline-Hilfe konfiguriert werden. Es ist nicht mehr nötig, XML manuell zu optimieren, obwohl Sie das auch tun können, wenn Sie dies tun möchten.
  • Unterstützung für Änderungssatz: Hudson kann eine Liste von Änderungen generieren, die im Build aus CVS/Subversion/Mercurial in den Build verabreicht werden. Dies geschieht auch ziemlich effizient, um die Last des Repositorys zu verringern.
  • Permanente Links: Hudson bietet Ihnen für die meisten Seiten sauber lesbare URLs, einschließlich einiger Permalinks Link "neuestes Build"/"Neueste erfolgreiche Build", sodass sie leicht von anderer Stelle verknüpft werden können.
  • RSS/E-Mail/IM-Integration: Überwachen Sie die Erstellung von Ergebnissen nach RSS oder E-Mail, um Echtzeit-Benachrichtigungen über Fehler zu erhalten.
  • AFTER-THE-THE-TAGGGING: Builds können lange nach dem Abschluss von Bau-/Test-Testberichten markiert werden in eine Grafik.
  • Distributed Builds: Hudson kann Build-/Testladungen auf mehrere Computer verteilen. Auf diese Weise können Sie das Beste aus diesen untätigen Workstationen herausholen, die unter den Schreibtischen der Entwickler sitzen. Fingerprinting -Datei: Hudson kann den Überblick über die erstellten, welche Gläser erzeugt und welches Build welche Version von Gläsern usw. verwendet. Dies funktioniert sogar für Gläser, die außerhalb von Hudson produziert werden, und ist ideal für Projekte, um die Abhängigkeit zu verfolgen.
  • Plugin -Unterstützung: Hudson kann über Drittanbieter -Plugins erweitert werden. Sie können Plugins schreiben, um Hudson -Support -Tools/-prozesse zu erstellen, die Ihr Team verwendet.

Sie sollten sich auschecken Hudson oder Tempomat. Beide sind einfach zu richten und kümmern sich um diese Art von Problemen für Sie mit mehr Berichten, Kontrolle und verbesserter Benutzerfreundlichkeit. Sie werden weniger Zeit damit verbringen, Build -Probleme zu untersuchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top