Domanda

Ho una classe base per molti test che ha alcuni metodi di supporto di cui tutti hanno bisogno.

Non ha di per sé alcun test, ma JUnit (in eclipse) sta invocando il test runner su di esso e si lamenta che non ci sono metodi per testare.

Come posso fare in modo che ignori questa classe?

So che potrei aggiungere un metodo dummyTest che risolva il problema, ma apparirebbe anche per tutte le classi dei bambini.

Suggerimenti?

È stato utile?

Soluzione

Usa per @Ignore annotazione. Funziona anche su lezioni. Vedi questo:

@Ignore public class IgnoreMe {
                        @Test public void test1() { ... }
                        @Test public void test2() { ... }
                }
  

Inoltre, puoi annotare una classe   contenente metodi di prova con @Ignore   e nessuno dei test contenenti lo farà   essere eseguito.

Fonte: JUnit JavaDoc

Altri suggerimenti

Proprio come una nota, consiglierei sempre di dare una ragione per ignorare:

@Ignore("This test will prove bug #123 is fixed, once someone fixes it")

Spero che il formattatore di report xml junit, usato durante l'esecuzione dei test da formica, un giorno includerà il conteggio ignorato (e i motivi) insieme a passa, fallito ed errore.

Rendere la classe abstract dovrebbe essere sufficiente per JUnit 4. Se non funziona, ricontrolla quale versione di JUnit stai utilizzando.

Questo comunica anche la tua intenzione che questo è solo un frammento di un test.

Impedisce inoltre a JUnit di conteggiare i test nella classe come "ignorato" (quindi il conteggio finale dei test ignorati sarà quello che ti aspetti).

In alternativa, rinominare la classe. La maggior parte dei corridori utilizza il nome della classe per determinare quali classi sono test e quali sono helper. In Maven con le impostazioni predefinite, devi solo assicurarti che la classe base non inizi o finisca con Test e non finisca con TestCase ( http://maven.apache.org/surefire/maven-surefire-plugin /examples/inclusion-exclusion.html )

Ci sono 2 opzioni:

  1. Dovresti creare la classe di test di base abstract , basta Junit4. Se usi l'attributo @Igonre, lo mostrerà come test ignorato (e lo aggiungerà al conteggio totale dei test).

  2. Puoi modificare il nome della classe di test in modo che non abbia la parola Test (distinzione tra maiuscole e minuscole) all'inizio o alla fine del nome del test / o la parola TestCase in la fine.

A proposito: @Igonre è per un caso d'uso diverso, quando si desidera ignorare un test specifico.

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