2013-10-22 66 views
2

尝试使用Django的鼻子Django的鼻子会不会运行单个测试用例类

$ ./manage.py test someapp.ModelTest 
nosetests someapp.ModelTest --nologcapture --verbosity=1 
Creating test database for alias 'default'... 
E 
====================================================================== 
ERROR: Failure: AttributeError ('module' object has no attribute 'ModelTest') 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 402, in loadTestsFromName 
    module = resolve_name(addr.module) 
File "/usr/lib/python2.7/site-packages/nose/util.py", line 321, in resolve_name 
    obj = getattr(obj, part) 
AttributeError: 'module' object has no attribute 'ModelTest' 

---------------------------------------------------------------------- 
Ran 1 test in 0.003s 

FAILED (errors=1) 

需要注意的是,当我运行$ ./manage.py test someapp它成功运行所有的TestCase的运行一个单独的测试用例时,我得到一个错误在someapp/tests.py中;只有在试图运行单个TestCase时才会失败。

+0

它只是一个导入错误的名字,但它不可能无需查看代码的其余部分即可知道问题所在。我会想象你在你的模型,管理或视图文件中导入了一个混乱的导入? –

+0

[如何用django-nose运行单个测试或单个TestCase?](http://stackoverflow.com/questions/18834188/how-to-run-a-single-test-or-single-testcase -with-django-nose) – kolen

回答

5

如果您使用的鼻子,输入模块(通常tests),一个冒号和测试类

manage.py test someapp.tests:SomeTestClass 

<path_to_python_module>:<class_name>

+0

非常好,谢谢!我以某种方式产生了这样的印象,因为'./manage.py test someapp'按预期工作,它仍然是Django的测试运行者决定运行哪些测试,而不是鼻子。 – Will

+0

对我不起作用 - 进口破损。 ''sys.path''包含项目目录,但是''somaapp.admin.py''中的第一次导入(与包含指定测试的应用程序相同)会导致''ImportError''。 – kolen