JSCover - Исключая файлы покрытия

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

  1. запустите сервер JSCover
  2. Запустить и создать отчет Json
  3. Остановить сервер

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

Скрипты 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>

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

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

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

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

2 ответа

Решение

Я решил свою собственную проблему, исправив команду оболочки, которая генерирует отчет 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.

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

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

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

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

Пути видны веб-серверу, поэтому префикс "web" в:

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

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

Другие вопросы по тегам