Domanda

Senza guardare in Junit Source stesso (il mio prossimo passo) esiste un modo semplice per impostare il corridore predefinito da utilizzare ad ogni test senza dover impostare @Runwith in ogni test? Abbiamo un enorme mucchio di test unitari e voglio essere in grado di aggiungere un certo supporto su tutta la scheda senza dover cambiare ogni file.

Idealmente, spero in qualcosa di simile: -djunit.runner = "com.example.foo".

È stato utile?

Soluzione

Non credo che ciò sia possibile definire a livello globale, ma se scrivere la tua funzione principale è un'opzione, puoi fare qualcosa di simile tramite il codice. Puoi creare un'usanza RunnerBuilder e passalo a un Suite insieme alle tue lezioni di test.

Class<?>[] testClasses = { TestFoo.class, TestBar.class, ... };
RunnerBuilder runnerBuilder = new RunnerBuilder() {
    @Override
    public Runner runnerForClass(Class<?> testClass) throws Throwable {
        return new MyCustomRunner(testClass);
    }
};
new JUnitCore().run(new Suite(runnerBuilder, testClasses));

Questo non si integrerà con i test di test dell'interfaccia utente come quello di Eclipse, ma per alcuni scenari di test automatizzati potrebbe essere un'opzione.

Altri suggerimenti

Junit non supporta l'impostazione del corridore a livello globale. Puoi nascondere il @RunWith in una classe base, ma questo probabilmente non ti aiuterà nella tua situazione.

A seconda di ciò che vuoi ottenere, potresti essere in grado di influenzare il comportamento del test a livello globale usando un'usanza RunListener. Ecco come configurarlo con il plug -in Maven Surefire: http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html#using_custom_listeners_and_reporters

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top