La mia cartella di unittest è organizzata in questo modo.Python Unittest discovery con sottocartelle
.
|-- import
| |-- import.kc
| |-- import.kh
| `-- import_test.py
|-- module
| |-- module.kc
| |-- module.kh
| `-- module_test.py
`-- test.py
che avrei voluto correre semplicemente test.py
per eseguire ogni mio *_test.py
usando unittest modulo python. Attualmente, il mio test.py contiene
#!/usr/bin/env python
import unittest
if __name__ == "__main__":
suite = unittest.TestLoader().discover('.', pattern = "*_test.py")
unittest.TextTestRunner(verbosity=2).run(suite)
La documentazione pitone dice che dovrebbe rilevare automaticamente il mio test nelle sottocartelle. Ma non è così.
Al momento, emettere solo
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
sono sicuro che non è un problema con il mio file *_test.py
, perché quando li sposto nella directory principale, funziona benissimo .. Cosa am Sto sbagliando?
Ha funzionato semplicemente toccando il file '__init __. Py', grazie. Puoi spiegarmi perché devo farlo? E c'è un'altra soluzione che? Perché sto lavorando con altre persone e vorrei che i test fossero il modo più semplice per creare. – tomahh
Questo è un artefatto del modo in cui viene implementato il rilevamento dei test. In sostanza, ogni directory che contiene un test deve essere importabile come un modulo Python. Vedi i [documenti] (http://docs.python.org/2/library/unittest.html#test-discovery) per maggiori informazioni. –