我认为最好的解决方案是使用
unittest
命令行界面,该界面会将目录添加到,
sys.path因此您不必(在
TestLoader类中完成)。
例如,对于这样的目录结构:
new_project├── antigravity.py└── test_antigravity.py
您可以运行:
$ cd new_project$ python -m unittest test_antigravity
对于像您这样的目录结构:
new_project├── antigravity│ ├── __init__.py # make it a package│ └── antigravity.py└── test ├── __init__.py # also make test a package └── test_antigravity.py
在
test包内的测试模块中,您可以
antigravity照常导入包及其模块:
# import the packageimport antigravity# import the antigravity modulefrom antigravity import antigravity# or an object inside the antigravity modulefrom antigravity.antigravity import my_object
运行一个测试模块:
要运行一个测试模块,在这种情况下
test_antigravity.py:
$ cd new_project$ python -m unittest test.test_antigravity
只需以导入模块的相同方式引用测试模块即可。
运行单个测试用例或测试方法:
您也可以运行一个
TestCase或单个测试方法:
$ python -m unittest test.test_antigravity.GravityTestCase$ python -m unittest test.test_antigravity.GravityTestCase.test_method
运行所有测试:
您还可以使用测试发现功能来为您发现并运行所有测试,它们必须是命名的模块或软件包
test*.py(可以用
-p, --pattern标志进行更改):
$ cd new_project$ python -m unittest discover$ # Also works without discover for Python 3$ # as suggested by @Burrito in the comments$ python -m unittest
这将运行包中的所有
test*.py模块
test。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)