Ich versuche, einen dynamischen JUnit-Test zu erstellen (Suche Dateien im Verzeichnis, passende Input/Erwartete Datei finden, den richtigen XQuery-Transformator verwenden und die Testdatenquellordner in das richtigen Verzeichnis setzen.)Wie kann ich verschiedene Testdaten für denselben JUnit-Test bereitstellen?
ArrayList<Tuple4> t = findfiles(new String[]{"**/*.xq**"}, "D:/PROJEKTE/UDG/OSB-Projekte/"); //Routine to put these information into my Array
for(Tuple4 sub : t){
String inp = (String) sub.c;
if(inp.contains("DiagFisArchiveId INP HDR")){
System.out.println("A: "+ sub.a + " B: " + sub.b + " C: "+ sub.c+ " D: "+sub.d);
new XQueryTester((String)sub.a,(String)sub.b).testHeader((String)sub.c,(String)sub.d);
} else if(inp.contains("PAY")){
System.out.println("A: "+ sub.a + " B: " + sub.b + " C: "+ sub.c+ " D: "+sub.d);
new XQueryTester((String)sub.a,(String)sub.b).testBody((String)sub.c,(String)sub.d);
}
}
Wenn diese laufen bekomme ich die folgende Ausgabe in meiner Konsole:
A: src\conf\IsiAivResponse_XqueryTransformer\IsiAivResponse.xquery B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_aiv\test\xquery-testdata\ C: IsiAivResponse IsiAivResponse INP PAY.xml D: IsiAivResponse IsiAivResponse EXP PAY.xml
A: src\conf\EsmArsRequest_XqueryTransformer\ArsBuilder.xquery B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_ars\test\xquery-testdata\ C: ArsBuilder EsmArsRequest INP PAY.xml D: ArsBuilder EsmArsRequest EXP PAY.xml
A: src\conf\IsiArsHeader_XqueryTransformer\headerSetter.xq B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_ars\test\xquery-testdata\ C: headerSetter IsiArsHeader INP PAY.xml D: headerSetter IsiArsHeader EXP HDR.xml
A: src\conf\IsiArsResponse_XqueryTransformer\response.xq B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_ars\test\xquery-testdata\ C: response IsiArsResponse INP PAY.xml D: response IsiArsResponse EXP PAY.xml
...
aber es sagt, ich lief nur 1 Test
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 30.928 sec - in XQueryTest
gibt es ein Problem mit meiner Initialisierung, oder führt es wirklich "jeden Test" aus und sagt nur, dass es 1 ist?
Bearbeiten: Ich habe nur 1 @Test Annotation
, aber wie kann ich überprüfen, es tatsächlich alles getestet. Da ich in meiner Test-Engine (XQueryTester
) tatsächlich etwas Protokollierung, die nicht gedruckt wird, auf die Konsole gelegt habe, habe ich das Gefühl, dass es nicht wirklich getestet wird.
JUnit coints jeder Testmethode als ein Test, unabhängig davon, wie viele Behauptungen, die Sie tun innen hilft. Wenn Sie denselben Test mit unterschiedlichen Testdaten durchführen möchten, verwenden Sie die '@ Parametrized' Testfunktion von JUnit –