如何在Bamboo中使用Karma(曾用名Testacular)运行Jasmine测试?

10

在使用AngularJS构建单页应用程序时,我正在尝试将Jasmine测试集成到我的构建中。

之前我使用过Maven Jasmine插件做类似的事情,但我不喜欢将我的项目包装在maven中只是为了运行Jasmine测试。使用Karma(曾用名Testacular)似乎更加清晰明了。

我相信可以通过shell命令让它正常运行,并且我猜测可以从Bamboo中运行该命令。

我的问题:

  • 我是否走上了正确的道路?
  • 我如何最好地运行一个脚本来使构建失败,或者Bamboo是否能自动识别Karma输出?
1个回答

8
很好的问题。请确保testacular.conf.js已配置为输出junit xml以供Bamboo使用。
junitReporter = {
  // will be resolved to basePath (in the same way as files/exclude patterns)
  outputFile: 'test-results.xml'
};

您可以配置Testacular在许多浏览器上运行,并预先配置为使用Chrome,我们选择开始使用PhantomJS进行单元测试。 Testacular已经内置了Jasmine。

对于CI,我们正在遵循以下建议:

// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun = true;

如果你经常使用Ant(我们也是如此),有时候你只想坚持自己熟悉的东西......所以您可能需要查看ANT,Windows和NodeJS模块来运行节点模块(即testacular)。
需要注意的是,如果您在Windows上运行testacular,则testacular的npm安装会失败,因为hiredis模块似乎只适用于*nix。 到目前为止,没有它也可以正常工作。
我们花了几个小时来证明这一切都有效。希望这会有所帮助。
--丹

太好了,谢谢分享。如果我发现有需要澄清的地方,我会在这里回复或编辑。尤其是 junitReporter 的技巧非常珍贵。 - iwein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接