Интеграция сгенерированных из командной строки файлов Python .coverage с PyDev - PullRequest
2 голосов
/ 18 ноября 2008

Моя среда сборки настроена для компиляции, запуска и создания файла покрытия из командной строки (с помощью инструмента Ned Batchelder cover.py).

Я использую Eclipse с PyDev в качестве моего редактора, но по практическим причинам я не могу / не могу конвертировать всю свою среду сборки в Eclipse (и, таким образом, генерировать данные покрытия непосредственно из IDE, так как он предназначен для делаем)

PyDev, похоже, использует тот же инструмент покрытия (или что-то очень похожее на него) для генерации информации о покрытии, поэтому я предполагаю, что должен быть какой-то способ интеграции моих внешних файлов покрытия в Eclipse / PyDev.

Есть идеи, как это сделать?

Ответы [ 2 ]

3 голосов
/ 29 января 2009

Мне нужно было нечто подобное некоторое время назад, когда PyDev все еще использовал более старую версию coverage.py, чем та, которая доступна на странице создателя скрипта.

Я обнаружил, где PyDev сохранял свой файл .coverage. Для меня это было:

 C:\Users\Admin\workspace\.metadata\.plugins\org.python.pydev.debug\.coverage

Затем я вручную запустил новую версию coverage.py из отдельного скрипта и сказал ему сохранить файл .coverage в том месте, где PyDev сохраняет его. Я не могу вспомнить, есть ли аргумент командной строки для coverage.py или я просто скопировал файл .coverage с помощью скрипта, но после этого, если вы просто откроете Просмотр результатов покрытия кода и нажмет Обновление информации о покрытии! , PyDev будет хорошо обрабатывать данные, как если бы он генерировал сам файл.

3 голосов
/ 18 ноября 2008

Я ничего не знаю об интеграции PyDev в cover.py (или если он даже использует cover.py), но файлы .coverage довольно простые. Это словари маршала.

Я не тестировал этот код, но вы можете попробовать это, чтобы объединить два файла .coverage в один:

import marshal
c1_dict = marshal.load(open(file_name_1, 'rb'))
c2_dict = marshal.load(open(file_name_2, 'rb'))
c1_dict.update(c2_dict)
marshal.dump(c1_dict, open(file_name_out, 'wb'))
...