Почему не делает gcov, сообщают какие-либо строки, покрываемые моими модульными тестами?

Я знаю, что может быть немного поздно сказать это, но Джефф прав. Это так же просто, как:

import os
from zipfile import ZipFile as zip

def extractAll(zipName):
    z = zip(zipName)
    for f in z.namelist():
        if f.endswith('/'):
            os.makedirs(f)
        else:
            z.extract(f)

if __name__ == '__main__':
    zipList = ['one.zip', 'two.zip', 'three.zip']
    for zip in zipList:
        extractAll(zipName)
15
задан 6 September 2009 в 12:30
поделиться

2 ответа

. Я периодически сталкивался с этой проблемой. Я наткнулся на хороший отрезок удачного времени, когда он «в основном работал» в моем основном проекте. Под «в основном работой» я имею в виду, что я смог получить покрытие, чтобы появиться, но с немного большей болью, чем на 10.5. Мне пришлось агрессивно удалить файлы покрытия и перестроить, например, чтобы получить какие-либо обновления. Даже в моем "едва работающем" состоянии компилятор / среда выполнения, похоже, не желают перезаписывать существующий файл данных покрытия.

Я думаю, что я вернулся к рабочему сценарию. Voodoo точно, но далеко не идеально:

  1. Убедитесь, что SDK - 10.6.
  2. Убедитесь, что для развертывания задано значение gcc 4.0 (!).
  3. Выполните полную очистку проекта.
  4. Перестройте.

Получите ли вы ожидаемые данные о покрытии?

Конечно, я можно было бы ожидать, что я смогу сгенерировать файлы покрытия, которые работают с использованием gcc 4.2 или одного из компиляторов LLVM, но на данный момент мне кажется, что это немного менее искалечено, чем раньше.

Еще одна подсказка: когда я наблюдаю за данными покрытия (используя Google Cover Story ), я получаю предупреждения вроде:

/BUILDRESULTS/MarsEdit.build/Code Coverage / MarsEditDataModelTests.build / Objects-normal / i386 / MEDataItem.gcno: version '400A', предпочитаю ' 402 * '

Но информация о покрытии все еще присутствует. Так что, похоже, он отказывается от более старой версии формата покрытия, но если я использую более новый компилятор (4.2), который предположительно сгенерирует новый формат .

10
ответ дан 1 December 2019 в 03:52
поделиться

Вы можете заставить работать code coverage с gcc 4.2.1. Подробности здесь:

SnowLeopardGCov

2
ответ дан 1 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: