Python 测试覆盖率和单一测试

Python 测试覆盖率和单一测试,python,code-coverage,nose,Python,Code Coverage,Nose,我使用nose和coverage作为测试堆栈。 我运行测试链,如下所示: (worker)pc16:task-worker julio$ fab localhost test [localhost] Executing task 'test' [localhost] local: nosetests --with-coverage --cover-package=task_workers --cover-html ................ Name

我使用
nose
coverage
作为测试堆栈。 我运行测试链,如下所示:

(worker)pc16:task-worker julio$ fab localhost test
[localhost] Executing task 'test'
[localhost] local: nosetests --with-coverage --cover-package=task_workers --cover-html
................
Name                                                            Stmts   Miss  Cover   Missing
---------------------------------------------------------------------------------------------
task_workers                                                        0      0   100%
task_workers.mobile_interface                                       0      0   100%
task_workers.mobile_interface.abstract_mobile_interface            22      0   100%
task_workers.mobile_interface.mobile_interface_factory             12      0   100%
task_workers.mobile_interface.openvox                               0      0   100%
task_workers.mobile_interface.virtual_network                       0      0   100%
task_workers.mobile_interface.virtual_network.virtual_network      46      9    80%   28-29, 31, 42-43, 45, 57-58, 60
task_workers.task                                                   0      0   100%
task_workers.task.shell                                             0      0   100%
task_workers.task.shell.shell                                      21      0   100%
task_workers.task.shell.shell_validator                            20      0   100%
task_workers.task.task_factory                                      9      0   100%
task_workers.task_workers                                          23      0   100%
task_workers.util                                                   0      0   100%
task_workers.util.exception                                        12      0   100%
---------------------------------------------------------------------------------------------
TOTAL                                                             165      9    95%
----------------------------------------------------------------------
Ran 16 tests in 0.265s

OK

Done.
重点是,我可以轻松地通过
nose
coverage
获得良好的代码覆盖率,因为我对主要功能进行了一些全局测试


如何能够逐类计算代码覆盖率,以确保代码是单一测试的,而不仅仅是由父类调用的

从覆盖率的角度来看,特定代码行是从父类执行还是从某个特定类执行并不重要。所以你的身体已经很好了!如果您想找到一些需要担心的事情,请尝试Coverage.py不提供告诉您需要什么的功能。现在您所能做的最好的事情是以较小的批运行测试:如果您想从test_Foo.py中的测试了解Foo类中的覆盖率,那么只运行test_Foo.py,并查看覆盖率是多少


如果您对如何简化这一过程有什么想法,我很想听听。

谢谢。我认为有一个缺点:如果我想在另一个程序中重复使用一个模块,而这个模块的覆盖范围是由父测试模块完成的,那么另一个程序将无法从测试中获益,必须编写另一个。@Julio如果你只是重复使用一个模块,那么你必须对现有的测试感到满意。新程序的测试应该只覆盖新程序,而不是被重用的模块。