Testing 如何在jenkins中运行ember cli测试

Testing 如何在jenkins中运行ember cli测试,testing,ember.js,jenkins,ember-cli,Testing,Ember.js,Jenkins,Ember Cli,如何在jenkins中运行Ember cli测试 目前,为了运行测试,我添加了一个构建步骤“ExecuteShell”,其中包含以下内容: ember test --silent --config-file ${WORKSPACE}/testem.json > ${WORKSPACE}/xunit-ember-dev.xml; 但它不起作用,这是输出 <testsuite name="Testem Tests" tests="0" failures="0" timestamp="T

如何在jenkins中运行Ember cli测试

目前,为了运行测试,我添加了一个构建步骤“ExecuteShell”,其中包含以下内容:

ember test --silent --config-file ${WORKSPACE}/testem.json > ${WORKSPACE}/xunit-ember-dev.xml;
但它不起作用,这是输出

<testsuite name="Testem Tests" tests="0" failures="0" timestamp="Thu Feb 12 2015 14:20:24 GMT+0100 (CET)" time="0">

</testsuite>

如果我在工作区中像jenkins用户那样手动执行相同的操作,我会得到预期的结果

<testsuite name="Testem Tests" tests="70" failures="0" timestamp="Thu Feb 12 2015 15:06:40 GMT+0100 (CET)" time="15">
    <testcase name="PhantomJS 1.9 Integration - Homepage: Should display the homepage"/>
    <testcase name="PhantomJS 1.9 Integration - Profile: Should display the profile sections"/>
    ...

...
每次我让詹金斯做测试,他都没有发现任何测试


谢谢

只需添加一个执行Shell步骤即可运行:

npm run test > results.tap
此命令告诉npm运行名为test的脚本,并将输出重定向到名为results.tap的文件。(重定向到results.tap的目的是,您可以获取此文件并将其交给发布生成后的tap结果步骤,并获得漂亮的测试运行图表。)

在package.json中,应该有一个如下所示的块:

  "scripts": {
    "start": "ember server",
    "build": "ember build",
    "test": "ember test"
  },
(这是ember cli 1.13.8中的默认版本,可能是更早的几个版本。)

使用这种方法,您不需要在构建系统上全局安装ember cli:它只需从项目的node_modules文件夹中获取它


注意:您可能会发现一些博客/论坛帖子告诉您运行
npm运行测试| tee结果。点击
。这将运行测试,但是会吃掉返回代码。(如果测试运行失败,npm进程将以返回值1退出,但由于您将输出管道化到第二个命令(tee),该命令的返回代码就是jenkins看到的。最终结果是jenkins将测试失败解释为成功,并继续运行构建步骤。)

日志输出有什么奇怪的地方吗?没有,詹金斯的日志很好,没有什么特别之处。