如何在主塔上运行鼻子testing

我有一个testing/function目录中的一堆testing的塔1.0应用程序。 我得到奇怪的testing结果,我想只运行一个testing。 鼻子文档说我应该能够在命令行中传入testing名称,但无论我做什么,都会收到ImportErrors

例如:

nosetests -x -s sometestname 

得到:

 Traceback (most recent call last): File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName module = resolve_name(addr.module) File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name module = __import__('.'.join(parts_copy)) ImportError: No module named sometestname 

我得到相同的错误

 nosetests -x -s appname.tests.functional.testcontroller 

什么是正确的语法?

nosetests appname.tests.functional.test_controller应该工作,其中文件名为test_controller.py

要运行特定的testing类和方法,请使用表单module.path:ClassNameInFile.method_name的path,即用冒号分隔模块/文件path和文件内的对象。 module.path是文件的相对path(例如tests/my_tests.py:ClassNameInFile.method_name )。

对于我使用Nosetests 1.3.0这些变种正在工作(但要确保你的testing文件夹中有__init__.py ):

 nosetests [options] tests.ui_tests nosetests [options] tests/ui_tests.py nosetests [options] tests.ui_tests:TestUI.test_admin_page 

请注意模块名称和类名称之间的单个冒号。

我必须添加“.py”文件扩展名,也就是说,

 r'/path_to/my_file.py:' + r'test_func_xy' 

也许这是因为我没有在文件中的任何类。 没有.py ,鼻子在抱怨:

在file / path_to / my_file中找不到可调用的test_func_xy:文件不是python模块

而这个虽然我有一个__init__.py文件夹/path_to/

我根据以前的回答写了这个小脚本:

 #!/usr/bin/env bash # # Usage: # # ./noseTest <filename> <method_name> # # eg: # # ./noseTest test/MainTest.py mergeAll # # It is assumed that the file and the test class have the _same name_ # (eg the test class `MainTest` is defined in the file `MainTest.py`). # If you don't follow this convention, this script won't work for you. # testFile="$1" testMethod="$2" testClass="$(basename "$testFile" .py)" nosetests "$testFile:$testClass.test_$testMethod"