I have directories, which contain files named like:
test_foo.py
Each file is a test case.
I would like to
Run all the tests in a directory from the command line. I am using unittest2
, since we are running Python 2.5.1. From one of these directories I tried typing this at the command line:
python -m unittest2 discover -p 'test_*.py'
and several different variants. I get no error, but nothing happens. I was expecting all the tests within all the test cases in that directory to run and get results.
I also tried having a script in the directory where I did this:
loader = unittest2.TestLoader()
t = loader.discover('.')
If I print the t
variable, I can see my test cases, but from the documentation I can't figure out what to do with the loader object once I have it.
I ran into the same issue when running python -m unittest discover
. Here is a good checklist to verify your setup. Nose
is more flexible with the allowed configurations, but not necessarily better.
Make sure all files/directories start with test
. Do not use test-something.py
, since that is not a valid Python module name. Use test_something.py
.
If you are putting your tests in a sub-directory (e.g. test/
), make sure you create a test/__init__.py
file so python will treat the directory as a package.
All class test cases definitions must be extend unittest.TestCase
. For example,
class DataFormatTests(unittest.TestCase)