Ich möchte UNIT Test mit SOAP Webservices schreiben. Webservices arbeiten in einer anderen JAR-Datei, die ich versuche Runtime.getRuntime() .exec (// java - jar ...) zu laden. Das Laden der JAR-Datei dauert 2 Minuten. Wenn der Ladevorgang im neuen Thread ist, endet der Test, bevor das Laden der JAR-Datei beendet wird. Wenn das Laden im Haupt-Thread ist, ist der Test nicht beendet. Ich versuche die HTTP-Antwort während des Zyklus zu hören, aber wenn der Zyklus funktioniert, wird die JAR-Datei nicht geladen.Start test body nach JAR-Datei laden (von JAVA) ist fertig
@Before
public void setUp() throws Exception {
// Get path of jar file
thread = new Thread() {
public void run() {
try {
Process process = Runtime.getRuntime().exec(path-to-java.exe -jar webservices.jar);
process.waitFor();
process.destroy();
} catch (Exception e) {
e.printStackTrace();
}
}
};
thread.start();
int responseCode;
do {
responseCode = getResponseCodeHTTP("http://localhost:8080/services");
} while (responseCode < 200 || responseCode >= 400);
System.out.println("Web services have loaded");
}
public int getResponseCodeHTTP(String urlToRead) throws IOException {
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
int result;
try {
conn.connect();
result = conn.getResponseCode();
} catch (ConnectException e){
return 500;
}
return result;
}
Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein bestimmtes Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines [mcve]. Nutze den Link [Bearbeiten], um deine * Frage * zu verbessern - füge keine weiteren Informationen über Kommentare hinzu. Vielen Dank! – GhostCat
Ich verstehe deine Frage wirklich nicht. Beschreiben Sie genau, was Sie erwarten und was tatsächlich passiert. Darüber hinaus: Nennen Sie nicht einen ** Unit ** -Test, wenn Sie tatsächlich einen vollen Funktionstest durchführen. Ein Unit Test macht Dinge isoliert. Ein Test, bei dem der Web-Service gestartet und ausgeführt werden muss, ist KEIN Unit-Test. – GhostCat