Ich versuche, eine JUnit Testsuite über die API aufzurufen. Ich weiß, dass Sie Klassen-Test-Suite können mit dem folgenden:Wie programmgesteuert eine Testsuite mit JUnit4 ausführen?
@RunWith(Suite.class)
@Suite.SuiteClasses({
Test1.class,
Test2.class, ...
})
Aber ist es eine Möglichkeit, die gesamte Suite mit dem Java-API, mit JUnitCore beispielsweise auszulösen?
Zum Beispiel können Sie einen Test auslösen, indem Sie den folgenden Code verwenden:
Runner r =
try {
r = new BlockJUnit4ClassRunner(Class.forName(testClass));
} catch (ClassNotFoundException | InitializationError e) {
// handle
}
JUnitCore c = new JUnitCore();
c.run(Request.runner(r));
Update:
Von der API, so scheint es, dass die Suite Klasse selbst ein Läufer ist, daher die folgender Code scheint zu funktionieren:
Suite suite = new Suite(klass, new RunnerBuilder() {
... // Implement methods
});
JUnitCore c = new JUnitCore();
c.run(Request.runner(suite));
Aber ich bin nicht sicher, ob dies ein empfohlene Ansatz ist oder wenn es irgendein Nachteil Schreiben t er über Code.
Danke Matthew! Ich werde es auf jeden Fall versuchen. Haben Sie in der Zwischenzeit Empfehlungen für das Code-Snippet in meinem Update? – Neel