我使用 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
,因为我对主要功能进行了一些全局测试 .
如何按类计算代码覆盖率类以确保代码是单元测试而不仅仅是父类调用?
2 回答
从覆盖范围的角度来看,从父类或某个特定类执行特定代码行并不重要 . 所以你已经处于非常好的状态!如果你想找一些值得担心的事情,试试branch coverage measurement
Coverage.py不提供告诉您所需内容的功能 . 您现在可以做的最好的事情是以较小的批次运行测试:如果您想从test_foo.py中的测试中了解Foo类中的覆盖范围,那么只运行test_foo.py,并查看覆盖范围是什么 .
如果你有关于如何使这更容易的想法,我很想听听他们 .