2010-05-11 27 views
14

Enorme progetto tonnellate di classi e directory.Struttura directory test unità

Devo fare in modo che il mio test di unità rispecchi queste directory o le metto tutte nella directory principale?

Un po 'fastidioso dover apportare modifiche alle directory e cambiare il nome della classe due volte.

+0

Sarebbe utile che tu aggiungessi il linguaggio al tuo lavoro ai tag. – Jherico

+2

Perché non inserire le unittests direttamente nella directory del progetto? – Stephen

risposta

17

Desiderate sicuramente che le directory di test dell'unità rispecchino le directory del codice sottoposto a test. È un dolore delicato da impostare manualmente, ma quel dolore non dura quasi quanto il dolore di avere tutti i test in pila, o peggio ancora, averli in qualche diversa struttura rispetto al codice in prova.

Evidentemente non stai usando Java, o il tuo codice di test avrebbe già la stessa struttura di pacchetto del codice sotto test e la domanda sarebbe discutibile. (Almeno I non riesco a immaginare di farlo in altro modo.)

+1

Secondato. Qualsiasi IDE decente renderà facilmente anche le directory e i nomi di refactoring. – Jherico

+2

A seconda della lingua, metterei più stress su pacchetti/moduli/spazi dei nomi piuttosto che su directory. –

+0

@Gabriel: sono d'accordo. Volevo farlo, ma @zachary non ha specificato una lingua. –

5

Mi piacerebbe avere i test unitari nella directory del progetto, per tenerli fisicamente vicini al codice che stanno supportando. La directory contenente l'unità verifica che un componente/pacchetto si trovi nella directory di quel componente/pacchetto, in una specifica directory test, allo stesso livello della directory src. Questo è quello che sto facendo per i progetti C/C++ FWIW. Il motivo principale è di essere in grado di compilare il componente e i suoi test unitari contemporaneamente, per rendere visibili i test unitari (i nostri componenti legacy non hanno tutti test unitari).

In questo modo, ogni modifica apportata alla struttura della directory non ha alcun impatto sulla struttura delle directory di test, poiché i test delle unità vengono spostati insieme al codice di produzione. Avere due strutture di directory parallele è una forma di duplicazione per me.