2009-04-21 4 views
23

Sto cercando di capire se c'è un modo per includere "testo descrittivo" nei miei rapporti junit tramite javadocs. JUnit 4 non sembra supportare l'attributo 'description' per l'annotazione @Test come fa TestNG.Rapporti JUnit - Descrizione del metodo di prova

Così lontano da quello che ho cercato, esiste solo uno strumento chiamato javadoc-junit (http://javadoc-junit.sourceforge.net/). Tuttavia non ho potuto farlo funzionare perché sembra essere incompatibile con Junit 4.

Quello che voglio è un modo per fornire una frase o due di testo con ogni mio metodo di test nel rapporto JUnit. JavaDoc non va bene poiché il pubblico di destinazione dovrà passare da JavaDoc a Junit Report per visualizzare la documentazione e/o le statistiche di test.

Qualcuno sa di qualsiasi altra cosa che potrei usare con il minimo sforzo?

migliore, Ray J

+1

Buona domanda. Sarei anche interessato a una soluzione per questo. – martin

+0

5 anni dopo, lo stesso problema. :) – mario

+0

Junit 5 supporterà i nomi dei test personalizzati: http://junit.org/junit5/docs/current/user-guide/#custom-names – gontard

risposta

6

non metto in javadocs test JUnit. Di solito, il nome del metodo è abbastanza descrittivo, quindi è buono come o meglio di qualsiasi commento che potrei inventare.

-1

Immagino che il Framework for Integrated Tests (FIT) sia una soluzione bella e pulita.

Che cosa fa FIT?
FIT è un framework che consente di scrivere test tramite una tabella in un documento Word, una tabella wiki o una tabella html.
Ogni carattere all'esterno di una tabella viene ignorato da FIT e consente di inserire documentazione, descrizione, requisiti e così via.

Come appare su questi tavoli?

Immaginate una funzione MyMath.square(int) con un parametro di input quadrato. Devi costruire un cosiddetto Fixture, essendo un adattatore tra la vostra e la tabella che segue MyMath:

class.with.Fixture.Square 
x square() 
2 4 
5 25 

La prima colonna descrive i valori di ingresso, la seconda il risultato atteso. Se non è uguale, questo campo è contrassegnato in rosso.

Come appare un dispositivo?
Per il nostro esempio, questo sarebbe il dispositivo corretto:

package class.with.Fixture // Must be the same as in the fist row of the table 

public class Square extends Fixture { 
    public int x; // Must be the same as in the second row 
    public int square() { // Must be the same as in the second row 
     return MyMath.square(x); 
    } 
} 

Probabilmente, è possibile utilizzare FIT per le vostre esigenze.
Non esitate a commentare la mia risposta o modificare la tua domanda per ulteriori informazioni!

+0

Non ha ottenuto come questo risponde alla tua domanda sull'aggiunta di un messaggio descrittivo per il tuo testMethod. FIT fornisce questa funzionalità? – hakish

+0

Non direttamente, ma è possibile fare una buona documentazione nel proprio documento di Word, cosa fa e deve fare il metodo di prova. – guerda

8

C'è anche una soluzione piuttosto recente denominata Allure. Questo è un report di esecuzione del test basato su Java basato principalmente sull'aggiunta di annotazioni supplementari al codice.annotazioni esistenti includono:

  • descrizione personalizzata: @Description ("Un test cool")
  • raggruppamento da caratteristiche o storie: @Features ({ "feature1", "feature2"}), @Stories ({ "story1", "Story2"})
  • marcatura metodi eseguiti all'interno caso di test come segue: @Step (funziona anche per i metodi privati)
  • allegati: @At tachment (name = "Pagina screenshot", type = "image/png")

vedere il loro wiki e example project per maggiori dettagli.

8

In JUnit 5 c'è un modo per annotare ogni test con uno @DisplayName. Le classi di test dichiarate possono avere text, special characters e emojis.

Il testo dichiarato per ciascun test è visibile con test runners e test reports.


Il Javadoc dice:

public @interface DisplayName

@DisplayName viene utilizzato per dichiarare un nome di visualizzazione personalizzato per la classe di test annotata o metodo di prova. I nomi di visualizzazione vengono in genere utilizzati per il reporting di test in IDE e strumenti di compilazione e possono contenere spazi, caratteri speciali e persino emoji.

E il User Guide:

import org.junit.gen5.api.DisplayName; 
import org.junit.gen5.api.Test; 

@DisplayName("A special test case") 
class DisplayNameDemo { 

    @Test 
    @DisplayName("Custom test name containing spaces") 
    void testWithDisplayNameContainingSpaces() { 
    } 

    @Test 
    @DisplayName("╯°□°)╯") 
    void testWithDisplayNameContainingSpecialCharacters() { 
    } 

    @Test 
    @DisplayName("") 
    void testWithDisplayNameContainingEmoji() { 
    } 
} 
+0

Grazie, ma JUnit 5 è troppo nuovo per essere utilizzato nella produzione. – Akceptor

+1

@Akceptor Questo è vero. Ma stavo pensando, la domanda è 7 anni - forse in 7 anni questa potrebbe essere la risposta corretta: D – Patrick

+1

Premiato. Solo perché sembra che JUnit 5 sia l'unica soluzione disponibile – Akceptor