Python UnitTesting -- 如何获取更明确的覆盖信息



py.testcoverage一起使用来生成覆盖率信息,这样我就可以看到我为多少代码编写了单元测试。

coverage run --source=package_directory/sources -m py.test package_directory/tests
coverage report -m --include=package_directory
coverage html --include=package_directory

覆盖率生成良好且精细,并且实际上按照我希望的那样工作(当我创建一个新的 unittest 来测试特定函数并运行前面提到的命令时,该函数从"丢失"到"运行",正如预期的那样)。问题是,脚本中出现了我什至还没有接触过的覆盖范围,这让我认为我的单元测试并没有完全隔离,并且正在蔓延到其他函数中。我想用coverage看看这是在哪里发生的。

因此,基本问题归结为:如果一个语句(函数)在覆盖率报告中被标记为"运行",有没有办法查看它从哪里运行(调用)?

目前还没有一种方法可以将覆盖的行跟踪回执行它们的测试。 请记住,只需导入模块即可执行模块中的顶级语句(通常为 defclass定义)。

最新更新