Ошибка синтаксиса для создания данных покрытия из нескольких файлов с помощью lcov в Windows

Мне нужна помощь ... У меня проблемы с синтаксисом для создания данных покрытия из нескольких файлов с помощью lcov в Windows.

У меня на cygwin установлены gcov, lcov и genhtml (я запускаю их под Windows). Все эти файлы находятся в каталоге cygwin / bin. Данные о покрытии, которые я просматриваю, я считаю, являются сценариями Perl, созданными из JsTestCoverage и имеет следующий формат:

SF:C:/test/jquery.js
DA:22,1
DA:23,1
...
end_of_record
SF:C:/test/testFile.js
DA:3,1
DA:6,1
...
end_of_record
//rinse and repeat till no more files

Обратите внимание: я еще НЕ использовал genhtml для данных о покрытии.

Затем я попробовал что-то вроде:

perl genhtml /../home/administrator/coverage1.dat /../home/administrator/coverage2.dat

Но получил сообщение об ошибке:

genhtml: Can't use an undefined value as a HASH reference at genhtml line 1506.

Я не уверен, что я ошибся в процессе, потому что я вообще не из фона Linux.

Заранее спасибо.


person BeraCim    schedule 22.12.2009    source источник
comment
Вы пытаетесь объединить данные из нескольких запусков gcov на отдельных модулях компиляции? Думаю, я понимал, что gcov ориентирован на модули компиляции, но не учел последствий; Правильно ли я понимаю, что если вы хотите получить собранные, унифицированные данные о тестовом покрытии для отображения на многих единицах компиляции, вам придется проделать некоторые ухищрения, чтобы объединить эти данные?   -  person Ira Baxter    schedule 22.12.2009
comment
@Ira Baxter: да, я пытаюсь объединить несколько отчетов о покрытии тестами в один отчет. Причина, по которой я сделал это, заключается в том, что, по словам создателей JsTestDriver, браузер не справляется с запуском большого количества тестов на покрытие за один запуск. Итак, я разделил тестовый файл на несколько файлов. Мне нужно объединить результаты тестов в один файл, иначе у меня будет бессмысленная статистика покрытия. Но потом я застрял в синтаксисе ... более того, то, что я не из Linux, заставляет меня не осознавать процесс, которому я должен следовать, чтобы достичь того, чего я хочу.   -  person BeraCim    schedule 22.12.2009
comment
Я просто перечитал документацию gcov. Похоже, что проблем с объединением данных о покрытии из нескольких единиц компиляции нет; он записывает совокупное количество файлов в файлы .gcda. ‹Копать, копать, ...› о, вы используете какой-то инструмент JsTestDriver, который генерирует данные, вроде как совместимые с lcov. ... формат данных о покрытии не кажется таким сложным, я ожидаю, что довольно простой скрипт сможет его составить. Извините, я здесь больше не помогаю: - {   -  person Ira Baxter    schedule 22.12.2009


Ответы (1)


Оказалось, что в данных о покрытии были повторяющиеся результаты. Вынул повторяющиеся данные, и ошибка исчезла.

Спасибо.

person BeraCim    schedule 22.12.2009