Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python unittest discovery with subfolders

My unittest folder is organized this way.

. |-- import |   |-- import.kc |   |-- import.kh |   `-- import_test.py |-- module |   |-- module.kc |   |-- module.kh |   `-- module_test.py `-- test.py 

I'd want to simply run test.py to run each of my *_test.py using the unittest Python module.

Currently, my test.py contains

#!/usr/bin/env python  import unittest  if __name__ == "__main__":     suite = unittest.TestLoader().discover('.', pattern = "*_test.py")     unittest.TextTestRunner(verbosity=2).run(suite) 

The python documentation says that it should automatically discover my test in the subfolders. But it does not.

At the moment, it only outputs

---------------------------------------------------------------------- Ran 0 tests in 0.000s  OK 

I'm sure it is not a problem with my *_test.py file, because when I move them into the root directory, it works fine.. What am I doing wrong?

like image 830
tomahh Avatar asked Oct 01 '12 13:10

tomahh


2 Answers

Add __init__.py in the import and module directories.

like image 51
Warren Weckesser Avatar answered Sep 20 '22 16:09

Warren Weckesser


Consider using nose instead of the vanilla unittest module, if you are able to switch. You won't need to mess around with your own test.py file or anything; a run of nosetests will find and run all your tests.

like image 20
jbowes Avatar answered Sep 19 '22 16:09

jbowes