Run all tests from subdirectories in Python

A good approach is to run all the tests in a subdirectory from the command line. In order to find the following files "TestObject1.py, TestObject2.py, ..." in subdirectories, you can run the following command in the command line:

python -m unittest discover -p 'Test*.py'

Additionally, the __init__.py is required within the import and module directories: Python unittest discovery with subfolders

The import unittest is required in the files unittest.subfolder1.TestObject1.py and unittest.subfolder2.TestObject2.py

It is also possible to define explicitly the directory where the discovery starts with the -s parameter:

python -m unittest discover [options]

-s directory     Directory to start discovery ('.' default)
-p pattern       Pattern to match test files ('test*.py' default)

In case you are using unittest2, it comes with a script unit2. The command line usage is:

unit2 discover unit2 -v test_module

Do not name your directory unittest, it may conflict with the standard library.

You also need to create a file named __init__.py in all of your directories (subfolder1, etc.), so they become packages and their content can be imported.