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