2017-01-09 5 views
1

У меня есть готовый файл javascript, который запускает все модульные тесты и покрытие. И скрипт генерирует файл coverage.json. Я предпочитаю использовать плагин cobertura (https://wiki.jenkins-ci.org/display/JENKINS/Cobertura+Plugin), поэтому я искал решение для создания подходящего файла cobertura, который является xml.Не удается создать файл cobertura.xml из lcov.info или файла coverage.json в Jenkins VirtualEnv

Я делаю все в VirutalEnv (https://wiki.jenkins-ci.org/display/JENKINS/ShiningPanda+Plugin)!

Я попробовал эту команду: istanbul report cobertura --root $WORKSPACE/coverage/coverage.json --dir coverage/ (https://github.com/gotwarlost/istanbul)

И результат выглядит следующим образом:

13:26:09 [...] 
13:26:09 210 passing (1s) 
13:26:09 
13:26:09 ============================================================================= 
13:26:09 Writing coverage object [/var/lib/jenkins/workspace/unit-tests-client-javascript/coverage/coverage.json] 
13:26:09 Writing coverage reports at [/var/lib/jenkins/workspace/unit-tests-client-javascript/coverage] 
13:26:09 ============================================================================= 
13:26:09 
13:26:09 =============================== Coverage summary =============================== 
13:26:09 Statements : 96.88% (279/288) 
13:26:09 Branches  : 86.24% (94/109), 1 ignored 
13:26:09 Functions : 100% (57/57) 
13:26:09 Lines  : 96.88% (279/288) 
13:26:09 ================================================================================ 
13:26:11 + istanbul report cobertura --root /var/lib/jenkins/workspace/unit-tests-client-javascript/coverage/coverage.json --dir coverage/ 
13:26:11 Done 
13:26:11 [Cobertura] Publishing Cobertura coverage report... 
13:26:11 Publishing Cobertura coverage results... 
13:26:11 Cobertura coverage report found. 
13:26:11 Finished: SUCCESS 

Однако созданный файл Cobertura-coverage.xml почти пуст!

<?xml version="1.0" ?> 
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd"> 
<coverage lines-valid="0" lines-covered="0" line-rate="1" branches-valid="0" branches-covered="0" branch-rate="1" timestamp="1483968808589" complexity="0" version="0.1"> 
<sources> 
    <source>/var/lib/jenkins/workspace/unit-tests-client-javascript</source> 
</sources> 
<packages> 
</packages> 

и инструмент покрытия кода код Cobertura ничего не показывает! 0 !!

Я также попытался с помощью lcov-к-Cobertura-XML (https://github.com/eriwen/lcov-to-cobertura-xml), но результат выглядит следующим образом:

14:33:24 [...] 
14:33:24 + git clone https://github.com/eriwen/lcov-to-cobertura-xml.git 
14:33:24 Cloning into 'lcov-to-cobertura-xml'... 
14:33:27 + pip install /var/lib/jenkins/workspace/unit-tests-client-javascript/lcov-to-cobertura-xml/. 
14:33:27 Processing ./lcov-to-cobertura-xml 
14:33:27 Requirement already satisfied (use --upgrade to upgrade): lcov-cobertura==1.6 from file:///var/lib/jenkins/workspace/unit-tests-client-javascript/lcov-to-cobertura-xml in /var/lib/jenkins/shiningpanda/jobs/e24105b6/virtualenvs/d41d8cd9/lib/python2.7/site-packages 
14:33:27 Building wheels for collected packages: lcov-cobertura 
14:33:27 Running setup.py bdist_wheel for lcov-cobertura: started 
14:33:28 Running setup.py bdist_wheel for lcov-cobertura: finished with status 'done' 
14:33:28 Stored in directory: /var/lib/jenkins/.cache/pip/wheels/06/91/3e/ead128a367068e0e33fd380f090030c829dff190d4099a2e3b 
14:33:28 Successfully built lcov-cobertura 
14:33:28 + lcov_cobertura coverage/lcov.info --base-dir /var/lib/jenkins/workspace/unit-tests-client-javascript --excludes /var/lib/jenkins/workspace/unit-tests-client-javascript/test --output coverage/coverage.xml 
14:33:28 /tmp/shiningpanda2010602884229553447.sh: line 40: lcov_cobertura: command not found 
14:33:28 Build step 'Virtualenv Builder' marked build as failure 
14:33:28 Finished: FAILURE 

Что я делаю неправильно? Потрачено так много часов, пытаясь решить это !!! Может быть, я должен использовать другой инструмент, который может преобразовать файл coverage.json в диаграмму или графику визуализации покрытия кода?

ответ

2

Ok Я нашел решение ...

Моя команда была: istanbul report cobertura --root $WORKSPACE/coverage/coverage.json --dir coverage/

Я изменил его istanbul report cobertura --root $WORKSPACE/coverage --dir $WORKSPACE

И теперь он работает отлично. Вероятно, проблема заключалась в том, что корневой каталог и директория были установлены в одну и ту же папку. Не знаю, почему это сработало, но эй, это решило :).

Смежные вопросы