Come gestire i test non unitari in un progetto?


9

Ho un po 'di codice nel mio progetto che chiamo personalmente testsche non sono unit test. Sono pensati per essere eseguiti e il risultato deve essere valutato da un essere umano. L'ho fatto perché sto realizzando un motore fisico e durante lo sviluppo, avevo bisogno di vedere cosa stavo facendo. Quindi ho creato un simulationpacchetto nel mio modulo di test. Tecnicamente si tratta di test di unità perché le simulazioni utilizzano la libreria di test di unità, ma non intendo eseguirli tutti come i miei test di unità effettivi.

Quello che vorrei fare è differenziare quei test speciali dai miei test unitari perché voglio eseguire facilmente tutti i test unitari. Penso che sia un po 'come i test funzionali. Hai mai incontrato un caso in cui dovevi preparare la tua domanda per un test funzionale? Dove deve essere collocata nel progetto quella preparazione al test funzionale (sostanzialmente quali sono le mie simulazioni) e come distinguerli dai test unitari?

Sono in Java quindi posso cambiare tutte le firme dei miei metodi da @Test public void myNamedTest()a public static void main(String[] args)ma sarebbe laborioso e meno pratico per me usare le mie simulazioni.

Sto usando junitin un gradleprogetto. Qualsiasi soluzione che crea una cartella di test speciale con gradleè benvenuta.


2
Penso che stai parlando di un banco di prova in cui è possibile eseguire test ad hoc. Questi sono in circolazione da più di 30 anni, e forse anche prima di allora. Di solito siedono in un progetto separato che può accedere alla libreria o qualsiasi altra cosa, ma puoi strutturarla come preferisci.
Robbie Dee,

3
I termini test unitario / integrazione / funzionale descrivono l' ambito del test: cosa viene testato. Questo è completamente indipendente dal modo in cui vengono eseguiti questi test, ad esempio test manuali vs. test automatizzati. Ci possono essere test di accettazione automatizzati e test unitari manuali e qualsiasi cosa nel mezzo. Quindi, se usi JUnit per eseguire test funzionali manuali, va benissimo: tienili in qualche modo separati dai test automatici in modo che non vengano eseguiti per impostazione predefinita.
amon,

Risposte:


10

Sembra che le versioni successive di Junit supportino le categorie di test. Questi possono essere utili per classificare ciascun test. Quindi, quando viene eseguita l'automazione della build, può includere o escludere tali test in base alla categoria.

Se si desidera combinare questi test con i test unitari è una questione di preferenza organizzativa. Si potrebbe desiderare di creare un progetto "test rig" separato per separare i test unitari regolari da quelli più specializzati.

https://dzone.com/articles/closer-look-junit-categories

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.