JSCover - 排除覆盖文件

时间:2015-03-12 11:44:57

标签: ant jenkins sonarqube-5.0 jscoverage

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

  1. 启动JSCover服务器
  2. Run&生成Json报告
  3. 停止服务器
  4. 最后,我有一个shell命令将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文件,我无法阻止声纳或蚂蚁。

    任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:1)

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

应该可行,并删除测试本身,

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

路径如web服务器所示,因此'web'前缀为:

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

没有效果。

答案 1 :(得分: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文件所在的位置。

我希望这有助于某人