pythondjangotestingnosedjango-nose

Can't get Nose to honor the attributes I set on my tests


I'm using Django 1.7 with django-nose 1.4 and nose 1.3.6.

According to the documentation, I should be able to select tests to be run by using attributes. I have a test set like this:

from nose.plugins.attrib import attr
from django_webtest import TransactionWebTest

@attr(isolation="menu")
class MenuTestCase(TransactionWebTest):

    def test_home(self):
        pass

When I try to run my tests with:

./manage.py test -a isolation

Nose eliminates all tests from the run. In other words, it does not run any test. Note that when I do not use -a, all the tests run fine. I've also tried:

The last one should select almost all of my test suite since the isolation attribute is used only on one class but it does not select anything! I'm starting to think I just don't understand how the whole attributes system works.


Solution

  • It is unclear to me what causes the problem. It probably has to do with how Django passes the command line arguments to django-nose, which then passes them to nose. At any rate, using the long form of the command line arguments solves the problem:

    $ ./manage.py test --attr=isolation
    

    and similarly: