2012-07-17 27 views
13

Come disabilitare una suite di test, cioè tutti i test all'interno della classe che si estende FunSpec?Come disattivare la suite di test in ScalaTest

L'unica soluzione che ho trovato è quella di sostituire it con ignore di fronte a ciascun test, ma è noioso farlo con le dozzine di test.

+2

Qualunque cosa tu faccia, [non commentarlo:)] (http://www.informit.com/articles/article.aspx?p=1334908) –

risposta

21

Il modo semplice per fare ciò in 1.8 è aggiungere un costruttore che accetta un argomento fittizio. ScalaTest (e SBT) non scoprire la classe se non ha un pubblico, costruttore no-arg:

class MySuite(ignore: String) extends FunSuite { 
    // ... 
} 

In 2.0 è sarete in grado di scrivere solo @Ignore sulla classe:

@Ignore 
class MySuite extends FunSuite { 
    // ... 
} 
+0

Ho provato questo, ma non ha avuto alcun effetto sto usando scala 2.10.2, per favore aiutatemi. @BillVenners – user3995789

2

I tag sono un'opzione, ma è necessario contrassegnare ogni test di conseguenza, non è possibile escludere completi completi in questo modo. Tuttavia, come menzionato dall'utente272735, i test di tagging sono una tantum.

Un'altra opzione è la definizione di una master suite e la limitazione dell'elenco di nestedSuites alle suite che si desidera eseguire (see the docs). L'ovvio svantaggio è che devi mantenere la suite di test principale, ad esempio aggiungere a essa delle suite di test appena create. Puoi evitarlo ricorsivamente attraverso le tue cartelle, creando un elenco di tutti i semi di prova che possono essere trovati e sottraendo quelli che hai inserito in una lista nera. Inoltre, la ricorsione tramite le cartelle ti offre già un'opportunità di filtrare i file che corrispondono a un criterio (esternamente) specificato.

Una terza opzione, anche se più hacky, consiste nel modificare il pacchetto a cui appartengono le suite che si desidera aggiungere alla lista nera. È quindi possibile utilizzare un corridore di prova per eseguire solo semi inclusi in determinati pacchetti. Maggiori informazioni nella documentazione, sezione "Specifying 'members-only' and 'wildcard' Suite paths".

5

È possibile utilizzare @Ignore sia per test distinti che per l'intero seme.

Problemi correlati