我怎样才能在詹金斯进行Ember-cli测试?
目前,为了运行测试,我添加了一个构建步骤“Execute shell”,其中包含以下内容:
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"/>
...
每当我让詹金斯参加测试时,他都没有找到测试。
由于
答案 0 :(得分:2)
只需添加一个运行的执行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 run test | tee results.tap
。这将运行测试,但它将吃掉返回代码。 (如果测试运行失败,则npm进程以返回值1退出,但由于您将输出传递给第二个命令(tee),该命令的返回代码是jenkins看到的。最终结果是jenkins将测试失败解释为成功并继续运行构建步骤。)