javascript - 使用 Jenkins 和 Apache Ant 运行 QUnit 测试?

是否可以从 Jenkins 执行我的 QUnit (javascript) 单元测试?我的构建脚本是 Apache Ant。 Jenkins 会将其作为单独的构建步骤执行,还是我需要在我的 Ant 构建脚本的配置中添加一些内容?

最佳答案

所以,我终于设法弄清楚了。

这是我的端到端实现:

  1. 安装 PhantomJS (http://phantomjs.org/) - 我将它安装在我的 build/tools 文件夹中

  2. 安装 PhantomJS QUnit Runner 脚本 (https://gist.github.com/1588423) - 也将它安装在我的 build/tools 文件夹中

  3. 在我的 build.xml 文件中添加了以下目标:

    <target name="qunit" description="runs QUnit tests using PhantomJS">
      <!-- QUnit Javascript Unit Tests -->
      <echo message="Executing QUnit Javascript Unit Tests..."/>
      <apply executable="path-to-your-phantomjs-bin-folder/phantomjs" >
        <arg value="-path-to-your-build-tools/qunit-runner.js" />
        <arg line="--qunit path-to-your-qunit-folder/qunit.js --tests path-to-your-test-folder --juni path-where-you-want-to-write-the-JUnit-style-output/qunit-results.xml" />
        <fileset dir="${basedir}/${dir.test}" includes="tests.js" />
        <srcfile/>
      </apply>
    </target>
  1. 在我的 Jenkins 项目配置下,我现在使用“minify qunit”调用 Ant

  2. 我将 Jenkins 指向 JUnit 样式的输出 XML 文件

还有,这是工作流程:

  1. 检查我的仓库中的更改
  2. Jenkins 将轮询 GitHub 以了解更改
  3. 如果有任何变化,Jenkins 会下拉
  4. 将调用 Ant,进行构建,然后运行我的单元测试
  5. 测试结果将以类似 JUnit 的 XML 格式发布
  6. Jenkins 会分析这个输出文件。如果没有测试失败,则构建将被标记为“成功”。如果任何测试失败,构建将被标记为“不稳定”
  7. Jenkins 将部署网络更改
  8. Jenkins 将清理工作区

PS:目前,您必须手动删除 JUnit 类型的 XML 输出文件。我稍后会解决这个问题。

PS:下载自定义的 qunit.js (https://gist.github.com/2488794)

https://stackoverflow.com/questions/10275476/

相关文章:

linux - Make的输出,括号内的数字

build - 有没有基于类似inotify机制的构建工具

javascript - 如何在 Grunt 目标之间共享文件?

ant - 如何在命令行中执行 Ant build

java - Android Gradle 将外部库和嵌套的外部库添加到项目中

node.js - Nodejs npm 步骤在 TeamCity 的每个构建中下载包

unit-testing - 每晚构建与持续集成 : Long-Running Automated

eclipse - 用ant构建eclipse项目

jenkins - 有没有办法在声明性 Jenkins 管道中运行预结帐步骤?

c++ - Visual Studio 跳过构建