2012-02-15 9 views
5

Sto sviluppando una raccolta di pacchetti/moduli Python (nessun file eseguibile). Qual è il modo corretto/migliore per impostare la gerarchia dei file per il test. Mi vengono in mente due scenari:Appropriata gerarchia di file per l'unittest in Python

Scenario 1:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
    tests/ 
     package1/ 
      test_module1-1.py 
      test_module1-2.py 
     package2/ 
      test_module2-1.py 
      test_module2-2.py 

Scenario 2:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
     tests/ 
      test_module1-1.py 
      test_module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
     tests/ 
      test_module2-1.py 
      test_module2-2.py 

Sono nuovo di unit testing (lo so che avrei dovuto fare molto tempo fa), così ho' Non sono sicuro quale di questi approcci sia migliore e sto cercando un consiglio da quelli che hanno più esperienza.

Grazie!

risposta

1

Il secondo scenario consente di disporre di pacchetti collegabili e viene utilizzato almeno in Django framework (per menzionare alcune autorizzazioni). Se usi il modulo unittest, ha l'utilità discover, che troverà tutti i test che hai nella cartella del tuo progetto, indipendentemente da come li hai organizzati, quindi anche il 2o approccio si adatta a questo.

+0

Grazie, questa sembra una buona soluzione. Mi piace che sia espandibile quando aggiungo più pacchetti e moduli. – jlconlin

1

Lo scenario 1 è migliore, secondo me. Ad esempio, semplifica le cose durante la distribuzione. Non si desidera distribuire il codice di test, quindi si deve semplicemente omettere la directory tests/ nel pacchetto. Questo approccio è molto più pulito.

Lo scenario 2 è caotico; Non vedo alcun vantaggio nel mescolare il codice di prova e il codice di produzione in questo modo.

Problemi correlati