将YUI测试与CruiseControl集成

时间:2010-06-09 19:48:52

标签: yui cruisecontrol

我正在使用YUI测试我的JavaScript应用程序,并希望将测试结果集成到我的CruiseControl构建系统中。如何使用CruiseControl运行测试?我最初想过使用JUnit插件来驱动测试,但这是不行的。

还有其他人有这个吗?

(请注意:更改YUI或CruiseControl对我来说不是一个选项。)

2 个答案:

答案 0 :(得分:2)

我们的HUI测试与Hudson集成用于我们的CI构建。这个过程应该与CC完全相同,因为我们通过ANT中的Java任务开始测试。

我们有一个selenium驱动程序(一个java impl - 我们正致力于公开它),它与SeleniumRC实例进行对话,将其指向构建工作区中的HTML文件以运行测试。

您可以尝试编写自己的硒驱动程序: http://seleniumhq.org/docs/05_selenium_rc.html#learning-the-api

驱动程序代码与SeleniumRC实例进行通信,并要求它启动指向基于YUI Test的HTML测试文件的浏览器。

HTML文件在加载时运行YUI Test Runner,驱动程序在页面加载时注入代码,在YUI Test Runner运行完毕后从YUI Test Runner中获取测试结果,并将它们存储为Hudson解析的文件。

此致 Satyen

YUI团队

答案 1 :(得分:0)

我的解决方案最终有点像黑客。

  • 我修改了测试运行器HTML页面,将测试结果(它创建的整个XML对象)发布到PHP页面,然后自行关闭。
  • 我向构建服务器添加了一个PHP页面(PHP处理器连接到Apache HTTPD实例)以接受发布的XML文档并将其保存到磁盘。
  • 单元测试现在由“测试驱动程序”运行,该测试驱动程序使用测试运行器HTML页面启动浏览器,并等待浏览器进程结束。

这将测试的输出提供到构建服务器的本地磁盘上。然后,我将输出文件合并到CC日志中,方法是将以下内容添加到项目配置中:

<log>
    <merge file="path_to_file" />
</log>

有一些缺点,但(目前)愿意和他们一起生活:

  • 必须向基础架构介绍测试运行器应用程序
  • 必须将Apache服务器和PHP处理器添加到构建计算机
  • 由于只有IE允许浏览器页面在没有用户提示的情况下自行关闭,因此构建服务器必须是Windows机器。