Интеграция сгенерированных из командной строки файлов Python .coverage с PyDev

StackOverflow https://stackoverflow.com/questions/297294

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

Я ничего не знаю об интеграции 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'))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top