一、nosetests框架
nosetests是Python流行的单元测试框架之一,可以自动扫描特定目录下的测试脚本并运行测试。自动发现测试用例的方法是根据文件名或类名中包含“test”字样,或函数名以“test”字样开头,这些被发现的测试用例,会被自动执行。除了自动发现测试用例外,nosetests还提供了丰富的参数配置,可以指定测试脚本、覆盖率、输出格式等。 使用nosetests框架进行测试,需要先安装nosetests模块。可以通过pip工具来安装:
pip install nose
安装完成后,可以在终端中运行nosetests:
nosetests
这时,nosetests会在当前目录下寻找测试用例并运行。
二、nosetests3
Python 3.x版本中使用nosetests需要安装nosetests3模块,安装方法与nosetests类似:
pip install nose3
使用方法同上,在Python3环境下运行nosetests:
nosetests3
三、nosetests出错
nosetests出错时,可以通过“-v”参数来详细输出出错信息:
nosetests -v
除此之外,nosetests还提供了各种调试参数,如“--pdb”(让nosetests在出错时自动进入Python调试器),“--pdb-failures”(只有测试失败时才进入Python调试器)等。
四、nosetests参数
nosetests支持多种参数,可以根据需要进行配置。以下是常用参数的介绍: 1. -s:禁止捕获stdout,能够在控制台中实时输出打印信息。 2. -x:发现一个测试用例失败后立即停止测试。 3. -w:指定工作目录。 4. -m:运行具有指定名称的测试函数。 5. --cover-html:生成覆盖率报告,并输出为HTML文件。 6. --coverage-dir:指定覆盖率生成目录。 7. --cover-package:指定要计算覆盖率的模块名。
五、nosetests无法找到full_physics
当nosetests无法找到full_physics时,可以通过“-I”参数指定忽略的目录或文件:
nosetests -I full_physics
六、nosetests不能用
当nosetests不可用时,可以检查是否已经正确安装nosetests模块或者是否将nosetests路径添加到环境变量中:
pip install nose
或者(在Linux环境下)添加环境变量:
export PATH="/usr/local/lib/python3.6/dist-packages/nose:$PATH"
七、nosetests无法正常运行
当nosetests无法正常运行时,可以通过升级或降级nosetests版本来解决问题:
pip install nose==1.3.7
或者:
pip install --upgrade nose
此外,还可以在nosetests命令中使用“--pdb”参数,让nosetests在出错时自动进入Python调试器,并寻找错误原因。