Invoking django tests in subdirectories
django
Solution
This is because Django expects the arguments to `test` command to be of the format:
app_label[.TestCase[.test_method]]
There is no way of doing this with the stock test runner (see, Carl Meyers comment). If everything goes well, this should be fixed in Django 1.5, but in the meantime you can use an alternate runner which accepts full module paths: django-discovery-runner.
Problem
I recently split up an app into subdirectories. For example, I had a "shop" app, and I split it up into shop/foo, shop/bar, shop/baz subdirectories, treating each one as a separate app, so my INSTALLED_APPS now looks like: ``` "shop", "shop.foo", "shop.bar", "shop.baz", ... ``` I want to be able to run the tests in shop/foo/tests.py by doing: ``` python manage.py test shop.foo ``` However, if I do that, I get the error: ``` ValueError: Test label 'shop.foo' does not refer to a test ``` On the other hand, I can run the tests by doing this: ``` python manage.py test foo ``` Why is this happening, and what can I change so that I can run the tests as "shop.foo" instead of "foo"?