2016-07-06 8 views
2

Stackoverflow hat mir sehr geholfen, um diesen Punkt zu erreichen, aber jetzt bin ich ganz fest, hier ist mein Problem:Jenkins/Fenster - Starten Sie TestNG Suite von .bat

ich zur Zeit mehrere Tests die Entwicklung einer Website zu überprüfen . Ich code mit Java in Eclipse, mit testNG Plugin mit ReportNG für Bericht, alles mit Windows 7 Pro.

Meine Tests funktionieren, und mein Bericht ist gut erstellt, also muss ich ihn jetzt auf Jenkins für meine Firma setzen, damit sie alle X Stunden meine Tests durchführen.

Um meine Tests zu starten, habe ich eine Datei mit dem Namen gemacht run.bat, die den Java-Code ausgeführt wird, ich es getestet und es funktioniert, hier ist der Code:

run.bat

set classpath=blex_test_v1\bin;blex_test_v1\lib\* 
java org.testng.TestNG blex_test_v1\blex_test_v1.xml 

ich versuche jetzt die Tests auf Jenkins zu starten, einen neuen Job zu schaffen und es mit dem Build-Abschnitt konfigurieren: Run.bat

Und das ist mein Problem, ich habe versucht, alles (relativer Pfad, nur der Name der Datei etc ...) Ich bekomme immer diese Fehlermeldung:

java.io.IOException: Kann nicht Programm „cmd laufen "(im Verzeichnis "/ var/jenkins_home/Jobs/blex_functional_test/Arbeitsplatz"): Fehler = 2, keine solche Datei oder das Verzeichnis

so überprüfte ich den Jenkins Arbeitsplatz aber mein run.bat ist drin: Workspace

Ich habe gelesen, dass Jenkins in Linux ist, so könnte es Probleme mit Bat-Dateien verursachen, also habe ich versucht, ein Skript BU zu erstellen t Ich war auch nicht erfolgreich ..

Also meine Frage ist: Wie kann ich meinen Test auf Jenkins mit meiner Datei Run.bat ausführen? Was mache ich hier falsch?

Vielen Dank!

+1

Hallo und willkommen bei SO. Läuft Jenkins auf einem Windows- oder Unix-Rechner?Wie es aussieht, läuft es unter Unix, daher kann es das Dienstprogramm 'cmd' nicht ausführen und Sie müssen zu einem Bash-Skript migrieren. Wenn es auf einem Windows-Slave laufen soll, dann müssen wir auch die Job-Konfiguration sehen ... ** P.S. ** Wenn Sie auf einen Kommentar antworten, können Sie @username verwenden, damit sie benachrichtigt werden. Prost – Morfic

+0

Vielen Dank für Ihre Begrüßung und schnelle Antwort @Morfic! Es läuft auf einem Linux-Rechner, aber jeder in meinem Team verwendet es mit Windows. Also muss ich ein Skript anstatt meiner run.bat schreiben, um meine Tests zu starten? Ist es möglich, ein Skript zu schreiben, das meine run.bat aufruft? Sorry, wenn es dumm aussieht, ich bin im Praktikum und das alles ist brandneues Zeug für mich! – DerFaya

+0

Wenn Sie planen, es unter Jenkins auszuführen, das wiederum auf einem * nix-Rechner ausgeführt wird, ist ein dediziertes Skript erforderlich, das in dieser Umgebung ausgeführt werden kann. Um es einfach zu formulieren (wir können keine Problemumgehungen extrapolieren) Win kann Nix nicht ausführen Skripte und Nix kann Win-Skripte nicht ausführen. Sie können ein Windows-Batch-Skript verwenden, mit dem Sie Tests lokal ausführen können, und das andere * nix Bash-Skript, das von Jenkins ausgeführt wird. Abhängig von Ihrem Projekt-Setup (Ant, Maven, Gradle, etc.) ist ein solches Skript vielleicht gar nicht nötig, aber das ist ein sekundärer Schritt für die Zukunft. – Morfic

Antwort

0

Endlich kann ich eine Antwort hinzu:

Jenkins auf einem Unix-Rechner installiert ist, so dass Sie nicht eine Fledermaus-Datei ausführen kann, hat es ein Bash-Skript sein.

Um ein Bash-Skript zu erstellen, beziehen Sie sich auf here.

Dann müssen Sie sicherstellen, dass das Plugin Xvfb installiert ist (und funktioniert) auf dem Computer, auf dem Jenkins installiert ist.

Ich benutze testNG mit reportNg und es funktioniert nicht mit der letzten Firefox-Version, also verwende ich Firefox v34.0.5 und diese Version muss auch auf dem Jenkins-Computer installiert werden.

Wenn Sie den Bericht nach der Ausführung öffnen mögen, ein anderes Plugin zu installieren und (Bericht HTML oder so ähnlich)

Gott es hat mich etwa eine Woche konfigurieren, aber es ist gut, daran zu arbeiten, um zu sehen!