如何在主塔上运行鼻子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"