运行与詹金斯和Apache Ant QUnit测试?(Running QUnit tests wit

2019-06-23 20:40发布

是否有可能从詹金斯执行我的QUnit(JavaScript)的单元测试? 我的构建脚本是Apache Ant的。 詹金斯将执行此作为一个单独的生成步骤,或者我需要在我的Ant构建脚本的配置添加的东西?

Answer 1:

所以,我终于设法想出解决办法。

这里是我的终端到年底实现:

  1. 安装PhantomJS( http://phantomjs.org/ ) -我在编译/工具文件夹中安装此

  2. 安装PhantomJS QUnit亚军脚本( https://gist.github.com/1588423 ) -在我的构建/ 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. 在我的詹金斯项目配置,我现在用“缩小qunit”调用Ant

  2. 我点詹金斯JUnit的风格输出XML文件

而且,这里是工作流程:

  1. 修改提交到我的回购
  2. 詹金斯将轮询GitHub的更改
  3. 如果有任何变化,詹金斯将拉低
  4. 蚂蚁将被调用,做构建,然后运行我的单元测试
  5. 测试结果将公布在一个JUnit般的XML格式
  6. 詹金斯将分析该输出文件。 如果没有测试失败,生成将被标记为“成功”。 如果任何测试失败,生成将被标记为“不稳定”
  7. 詹金斯将部署在网络的变化
  8. 詹金斯将清理工作区

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

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



Answer 2:

我专门写一个Ant任务此

https://github.com/philmander/ant-jstestrunner



Answer 3:

如果我没有理解你的设置,你可以运行Ant构建一步向它提供您的位置build.xml ,顶级目标,并-D参数(如果有的话)。 这可能有一定的帮助。



Answer 4:

Qunit本身现在维持phantomjs亚军:

https://github.com/jquery/qunit/tree/master/addons/phantomjs

因此,假设你已经安装了phantomjs,从上面的链接抓取runner.js(或使用凉亭/不管JS包管理器得到它),把它放在詹金斯可以找到它,然后使用:

phantomjs path/to/runner.js path/to/your/qunit_tests.html

它提供了这样的最小输出:

$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html 
Took 29ms to run 11 tests. 11 passed, 0 failed.

或者这样,如果它失败:

$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html 
Test failed: sinon tests of navigator.id.watch: watch sees current user
    Failed assertion: check user, expected: current user, but was: baz
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:556
    at file:///home/harry/superlists/accounts/static/tests/tests.html:69
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:203
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:361
    at process (file:///home/superlists/superlists/static/tests/qunit.js:1453)
    at file:///home/harry/superlists/superlists/static/tests/qunit.js:479
Took 29ms to run 11 tests. 10 passed, 1 failed.

没有的JUnit XML集成,但至少如果失败则返回错误代码,所以它会在詹金斯构建失败...

$ echo $?
1


文章来源: Running QUnit tests with Jenkins and Apache Ant?