将Node.js与QUnit集成到Jenkins

时间:2013-03-29 17:11:34

标签: node.js jenkins qunit xunit

这是我的第一篇文章,请原谅我的格式和思想组织。在发布此问题之前,我已尽力解决问题。我的问题的一部分可能是缺乏Ubuntu或Node.js中的软件包的知识,所以请指导我。

我正在尝试从Node.js应用程序的QUnit测试中为Jenkins创建一个XUnit xml文件。我没有能力运行浏览器甚至无头浏览器,也不明白为什么我需要一个,因为Node.js代码不处理浏览器。

我一直在搜索并且只使用qunit-tap和'prove'成功创建了一个XML文件。证明需要下载一个perl文件的格式化程序。我们正试图阻止使用perl的东西。

我的系统是Ubuntu VM。这是一项工作任务,我的老板要求最少量的包和依赖项。我们的Node.js服务器正在接受Web套接字请求,并使用用PHP编写的遗留系统来回传递消息。

当我在控制台中运行测试时,QUnit的输出似乎是一个漂亮的打印格式,在表中。如果把它变成带有旗帜的更平坦的形式,真是太棒了!

提前致谢!

2 个答案:

答案 0 :(得分:0)

嗯,对于NodeJS,您可以使用Grunt和grunt-contrib-qunit,但我建议采用以下方法:

  1. 利用JUnit Logger JUnit的(https://github.com/jquery/qunit-reporter-junit)插件 兼容报告。
  2. 在PhantomJS Runner https://github.com/jquery/qunit/tree/master/addons/phantomjs中注释掉console.log输出,以静音由跑步者产生的非XML输出
  3. 为Apache Ant构建脚本分配任务:
  4.     <target name="qunit" description="runs QUnit tests using PhantomJS">
        <echo message="Executing QUnit Javascript Unit Tests..."/>
          <exec executable="/usr/local/bin/phantomjs" output="./build/qunit/qunit-results.xml">
            <arg value="./vendors/Runner/runner-muted.js" />
            <arg value="test-runner.html" />
          </exec>
        </target>
    

    Jenkins将在./build/qunit/qunit-results.xml

    中查找该报告

答案 1 :(得分:0)

同上,上面回答好

使用junit报告并将其连接到标准的jenkins单元测试插件 - &gt; http://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin

为了在机器上轻松配置自安装的nodejs,我必须推荐优秀的 - &gt; http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

对于jshint / csslint报告,我发现https://wiki.jenkins-ci.org/display/JENKINS/Checkstyle+Plugin插件非常好,jshint和csslint都输出到了这个

jshint : {
    options : {
        reporter : 'checkstyle',
        reporterOutput : 'reports/jshint.xml',
    },
    src : "..."
},

csslint : {
    strict : {
        options : {
            formatters : [{
                id : 'checkstyle-xml',
                dest : 'reports/csslint.xml'
            }],
            csslintrc: '.csslintrc'
        },
        src : [...],
    },
},