2014-07-16 4 views
0

Я использую 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

+0

Спасибо. Я думаю, что есть один недостаток: если я хочу повторно использовать модуль в другой программе, и охват этого модуля выполняется родительским тестовым модулем, другая программа не получит преимущества теста и ему придется написать еще один один. – Julio

+0

@Julio Если вы просто повторно используете модуль, вы должны быть удовлетворены существующими тестами. Тесты для вашей новой программы должны просто охватывать новую программу, а не использовать повторно используемый модуль. – quamrana

0

Coverage.py не предлагает функцию, чтобы рассказать вам, что вы хотите. Лучшее, что вы можете сделать сейчас, это запустить тесты в меньших партиях: если вы хотите узнать покрытие в классе Foo из тестов в test_foo.py, запустите только test_foo.py и посмотрите, что такое покрытие.

Если у вас есть идеи о том, как это сделать проще, мне интересно их услышать.

Смежные вопросы