2015-03-12 14 views
1

В настоящее время пытается получить JSCover для исключения js-файлов, которые используются в качестве библиотек. У меня есть набор муравьиных сценариев, ниже которого будетJSCover - Исключая файлы покрытия

  1. запуска сервера JSCover
  2. Run & Сформировать отчет Json
  3. Остановите сервер

Наконец, у меня есть команда оболочки для преобразования Json файл для LCov, чтобы я мог использовать его с sonarqube. Я также получаю покрытие в jscoverage.html, но он включает в себя каждый файл под web/который я не хочу. Изображение ниже

enter image description here

Ant скрипты ниже:

<target name="jstest-start"> 
    <java jar=".../JSCover.jar" fork="true" spawn="true"> 
     <arg value="-ws"/> 
     <arg value="--report-dir=coverage"/> 
     <arg value="--document-root=web"/> 
     <arg value="--port=8082"/> 

     <!-- Aim is to exclude folder js under web/ as it contains libraries, not source code. Currently does not work --> 
     <arg value="--no-instrument=web/js/"/> 
     <arg value="--no-instrument=js/"/> 
    </java> 

    <waitfor maxwait="5" maxwaitunit="second" checkevery="250" checkeveryunit="millisecond" timeoutproperty="failed"> 
     <http url="http://localhost:8082/jscoverage.html"/> 
    </waitfor> 
    <fail if="failed"/> 

</target> 

<target name="jstest-run"> 
    <exec dir="/usr/local/CI/phantomjs/bin/" executable="phantomjs" failonerror="true"> 
     <arg line=".../run-jscover-qunit.js http://localhost:8082/index.html"/> 
    </exec> 
</target> 

<target name="jstest-stop"> 
    <get src="http://localhost:8082/stop" dest="stop.txt" /> 
</target> 

<target name="jstest" description="Run javascript tests"> 
    <antcall target="jstest-start"/> 
    <antcall target="jstest-run"/> 
    <antcall target="jstest-stop"/> 
</target> 

Моя структура папок:

enter image description here

И, наконец, мои настройки анализа гидролокатора автономные:

enter image description here

Итак, похоже, что JSCover рекурсивно читает для всех js-файлов, и я не могу предотвратить это от сонара или муравья.

Может ли кто-нибудь пролить свет?

ответ

0

Я решил свою проблему, исправив команду оболочки, которая генерирует отчет LCOV.

java -cp JSCover.jar jscover.report.Main --format=LCOV /usr/local/CI/jenkins/workspace/PhantomJS/coverage/phantom/ /usr/local/CI/jenkins/workspace/PhantomJS/web/ 

До этого SRC-DIR и REPORT-DIR были те же что было ошибкой с моей стороны. Насколько я понимаю, SRC-DIR должен указывать на исходную папку, а REPORT-DIR должен указывать на то, где находится файл lcov.

Я надеюсь, что это поможет кому-то

1
<arg value="--no-instrument=/js/"/> 

должен работать, и удалить сам тест,

<arg value="--no-instrument=/test/"/> 

Дорожки, как видно на веб-сервере, так что 'паутина' префикс в:

<arg value="--no-instrument=web/js/"/> 

не имеет никакого эффекта.

+0

Спасибо за ваш ответ. Я пробовал буквально каждую комбинацию, которую я мог себе представить, включая ваше первое предложение, которое должно работать, но это не так. Я гарантировал, что папка покрытия воссоздана при каждой сборке, но JSCover по-прежнему включает в себя каждый файл js во всех подпапках под веб-папкой –

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

  • Нет связанных вопросов^_^