Я знаю, что может быть немного поздно сказать это, но Джефф прав. Это так же просто, как:
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)
. Я периодически сталкивался с этой проблемой. Я наткнулся на хороший отрезок удачного времени, когда он «в основном работал» в моем основном проекте. Под «в основном работой» я имею в виду, что я смог получить покрытие, чтобы появиться, но с немного большей болью, чем на 10.5. Мне пришлось агрессивно удалить файлы покрытия и перестроить, например, чтобы получить какие-либо обновления. Даже в моем "едва работающем" состоянии компилятор / среда выполнения, похоже, не желают перезаписывать существующий файл данных покрытия.
Я думаю, что я вернулся к рабочему сценарию. Voodoo точно, но далеко не идеально:
Получите ли вы ожидаемые данные о покрытии?
Конечно, я можно было бы ожидать, что я смогу сгенерировать файлы покрытия, которые работают с использованием gcc 4.2 или одного из компиляторов LLVM, но на данный момент мне кажется, что это немного менее искалечено, чем раньше.
Еще одна подсказка: когда я наблюдаю за данными покрытия (используя Google Cover Story ), я получаю предупреждения вроде:
/BUILDRESULTS/MarsEdit.build/Code Coverage / MarsEditDataModelTests.build / Objects-normal / i386 / MEDataItem.gcno: version '400A', предпочитаю ' 402 * '
Но информация о покрытии все еще присутствует. Так что, похоже, он отказывается от более старой версии формата покрытия, но если я использую более новый компилятор (4.2), который предположительно сгенерирует новый формат .
Вы можете заставить работать code coverage с gcc 4.2.1. Подробности здесь: