1

目前试图让 JSCover 排除用作库的 js 文件。我在下面有一组 ant 脚本

  1. 启动 JSCover 服务器
  2. 运行并生成 Json 报告
  3. 停止服务器

最后,我有一个 shell 命令将 Json 文件转换为 LCov,以便我可以将它与 sonarqube 一起使用。我也在 jscoverage.html 中获得了报道,但它包含了 web/ 下的每个文件,这是我不想要的。下图

在此处输入图像描述

蚂蚁脚本如下:

    <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 文件,我无法阻止声纳或蚂蚁。

任何人都可以解释一下吗?

4

2 回答 2

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

应该工作,并删除测试本身,

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

路径如网络服务器所见,因此“网络”前缀位于:

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

没有效果。

于 2015-03-17T08:50:13.903 回答
0

我通过更正生成 LCOV 报告的 shell 命令解决了我自己的问题。

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 文件所在的位置。

我希望这可以帮助别人

于 2015-03-17T10:45:32.633 回答