如何在不加载JSP的情况下从Jenkins(Hudson)运行JavaScript jasmine测试?

fin*_*elp 16 javascript jquery unit-testing jasmine jenkins

我们有一个丰富的Web客户端.我们的控制器和服务外观用coffeescript(JavaScript)和jquery编写.过去他们本来就是java.

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

当Htmlunit试图运行时,由于XML解析器类路径在我们的世界中追踪极具挑战性,它可能会因为尝试getPage()而崩溃.

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

Jus*_*rls 14

听起来像是在Java环境中.我的jasmine-maven-plugin可能是个不错的选择.


mro*_*ney 8

Jasmine Reporters也是一个解决方案.它具有通过PhantomJS无头运行的指令,它可以生成JUnit XML,因此Jenkins可以本地理解测试结果,绘制测试计数,持续时间和故障随时间变化.

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


小智 6

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

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

有jQuery的节点模块,下划线,还有其他的节点模块,所以这些也可以测试.如果你宁愿在浏览器中运行测试,你甚至可以跳过整个浏览器仿真,尽管我发现它与自动Jenkins测试相比太麻烦了.

jasmine-node生成jUnit测试报告,Jenkins可以解释得很好.

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


Sar*_*tha 0

可以用硒吗?实际上,这将使用真实的浏览器并尽可能接近真实环境。