17

我们有一个富网络客户端。我们的控制器和服务外观是用 coffeescript (JavaScript) 和 jquery 编写的。在过去,它们可能是 java。

为了从 Jenkins/Hudson 运行我们的 JavaScript jasmine 测试,我们使用 java 的 junit 和 htmlunit 来加载一个包含 jasmine 规范的面向测试的 jsp 页面。

当 Htmlunit 尝试运行时,它在尝试 getPage() 时崩溃了,这可能是因为 XML 解析器类路径在我们的世界中很难追踪。

我们只是希望能够从 Jenkins 运行我们的 JavaScript 测试,如果 JavaScript 测试没有通过,它会报告失败。我们只是使用 jsp 和 htmlunit 来运行 JavaScript 测试。我们可以将 JavaScript 测试和 JavaScript 代码加载到一个 JavaScript 引擎中,并使用 Jenkins 作为启动它的东西吗?如果是这样,怎么做?

4

5 回答 5

14

听起来你在 Java 环境中。我的jasmine-maven-plugin可能很合适。

于 2011-10-10T03:23:15.110 回答
8

Jasmine Reporters也是一个解决方案。例如,它具有通过 PhantomJS 无头运行的指令,并且它可以生成 JUnit XML,因此 Jenkins 可以原生地理解测试结果,绘制测试计数、持续时间和失败随时间变化的图表。

此外,通常随 xvfb 提供的“xvfb-run”包装器在这里提供了很大的帮助,因此您可以在真正的无头环境中执行“xvfb-run phantomjs.runner.sh ...”。

于 2013-01-22T22:14:22.243 回答
6

我以前通过使用名为jasmine-node的 node.js 插件运行测试解决了这个问题

这个解决方案当然需要 node.js 和一些节点模块才能正确运行 jasmine 测试。没有真正的浏览器运行测试,而是使用名为 jsdom 的模块模拟​​的浏览器,它基本上创建了一个无头浏览器,更具体地说,是一个 DOM,测试可以与之交互。

有用于 jQuery 的节点模块,下划线和可能还有其他的,所以这些也可以测试。如果您更愿意在浏览器中运行测试,您甚至可以跳过整个浏览器仿真,尽管与自动化 Jenkins 测试相比,我觉得它太麻烦了。

jasmine-node 生成 jUnit 测试报告,Jenkins 可以很好地解释这些报告。

我刚刚意识到有一些jenkins-jasmine-node插件可以简化这个过程。

于 2012-06-29T06:43:26.627 回答
1

咕噜是你的朋友

得到了这个设置,它真的很棒,而且这给了你一个地方,让你的构建服务器开始做其他好的事情,比如部署,单元测试等等,其他好的事情

于 2014-02-25T14:44:04.130 回答
0

你能用硒吗?那实际上将使用真正的浏览器并尽可能接近真实环境。

于 2011-10-03T13:10:49.783 回答