首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins + qUnit

Jenkins + qUnit
EN

Stack Overflow用户
提问于 2011-10-13 23:34:22
回答 5查看 5.5K关注 0票数 5

如何轻松地将Jenkins与qUnit集成?我将使用真正的浏览器(如firefox和chrome)来运行测试。我的服务器运行在RedHat 6.1Linux上。我想我已经有了所有需要的插件/库,但我仍然不知道如何让它工作。我第一次和Jenkins一起工作(在服务器端)。

//编辑:

如果有人能分享如何建立覆盖报告的想法,那就太好了。

提前感谢:)。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-13 11:27:57

说Jenkins和QUnit只是拼图的一部分。您仍然需要一个web浏览器和一种将QUnit结果中的JUnit样式的XML文件放到磁盘上的方法。虽然有Selenium和Webdriver可以控制许多浏览器,但最简单的入门方法是使用PhantomJS (http://phantomjs.org/)。PhantomJS是一个基于webkit的无头浏览器,就是为了完成这样的任务。

如果您浏览本页面( http://code.google.com/p/phantomjs/wiki/WhoUsesPhantomJS )的“测试框架”部分,您将看到几个用于运行QUnit的脚本(其中一些支持JSCoverage )。phantomjs-jscoverage qunit脚本看起来将命中您想要命中的所有主要点,就像联合航空一样。这两个看起来都需要一些摆弄才能让它们运行起来。

遗憾的是,我还没有发现任何运行QUnit测试并获得Selenium、WebDriver或PhantomJS的JUnit输出的方法,这些方法不需要修改就可以工作。

编辑:几个月后的今天,我清楚地知道webdriver是Selenium的未来(当时我可能已经很清楚了,但事实并非如此)。此外,PhantomJS现在通过GhostDriver与WebDriver合作,因此只支持WebDriver并选择PhantomJS作为目标可能是未来最好的建议。

票数 7
EN

Stack Overflow用户

发布于 2013-07-19 04:10:39

这个问题已经发布一年多了,但是有一个针对TestSwarmJenkins plugin。我外行的理解是,您可以使用TestSwarm在所有主要浏览器上连续运行QUnit测试。它在GitHub上是开源的。

票数 1
EN

Stack Overflow用户

发布于 2013-08-16 07:20:04

披露:我是Arquillian项目的贡献者。

您可以使用Arquillian Qunit Extension开源扩展在Jenkins上执行QUnit测试。通常,在持续集成环境中可以轻松地使用Arquillian Qunit Extension。在这个GitHub repo上,您可以找到一个真实的示例,说明如何使用Arquillian Qunit ExtensionTravis CI无头机器上执行Travis CI测试。

Arquillian是一个JBoss社区项目。

Arquillian Qunit Extension是一个自动化QUnit JavaScript测试的Arquillian扩展。Arquillian Qunit Extension与JUnit测试框架透明地集成在一起。

您可以在此README file上找到更多信息。此外,还有一个可以通过Maven执行的showcase,它展示了如何设置您的测试用例。

使用此扩展,您可以选择在QUnit测试执行期间部署存档和/或在一次执行中执行一个或多个QUnit测试套件。此外,您可以使用@InSequence注释定义QUnit测试套件的执行顺序。

例如,假设您想要执行两个QUnit测试套件( QUnit -testsajax.html和QUnit-testsdom.html),并且包含在这些测试套件中的QUnit测试执行对Web服务的Ajax请求。显然,在执行测试时,您需要将此Web服务放在主机上。Arquillian可以自动执行Web服务到容器的部署。在这种情况下,您的Arquillian测试用例将如下所示:

代码语言:javascript
复制
 @RunWith(QUnitRunner.class)
 @QUnitResources("src/test/resources/assets")
 public class QUnitRunnerTestCase {

     private static final String DEPLOYMENT = "src/test/resources/archives/ticket-monster.war";

     /**
      * Creates the Archive which will be finally deployed on the AS.
      *
      * @return Archive<?>
      */
     @Deployment()
     public static Archive<?> createDeployment() {
         return ShrinkWrap.createFromZipFile(WebArchive.class, new File(DEPLOYMENT));
     }

     /**
      * Execute the qunit-tests-ajax.html QUnit Test Suite.
      */
     @QUnitTest("tests/ticketmonster/qunit-tests-ajax.html")
     @InSequence(1)
     public void qunitAjaxTests() {
         // empty body - only the annotations are used
     }

     /**
      * Execute the qunit-random-tests.html QUnit Test Suite.
      */
     @QUnitTest("tests/ticketmonster/qunit-random-tests.html")
     @InSequence(2)
     public void qunitRandomTests() {
         // empty body - only the annotations are used
     }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7756644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档