披露:我是 Arquillian 项目的贡献者。
您可以使用Arquillian Qunit Extension 开源扩展在 Jenkins 上执行您的 QUnit 测试。一般来说,Arquillian Qunit Extension 可以很容易地在持续集成环境中使用。在这个GitHub repo 上,您可以找到一个真实示例,说明如何使用Arquillian Qunit Extension 在Travis CI 无头机器上执行QUnit 测试。
Arquillian 是一个 JBoss 社区项目。
Arquillian Qunit Extension 是一个 Arquillian 扩展,可自动执行 QUnit JavaScript 测试。 Arquillian Qunit Extension 与 JUnit 测试框架透明集成。
您可以在此README file 上找到更多信息。此外,还有一个showcase 可以通过 Maven 执行并展示如何设置您的测试用例。
使用此扩展,您可以选择在 QUnit 测试执行期间部署存档和/或在单次执行中执行一个或多个 QUnit 测试套件。此外,您可以使用 @InSequence 注释定义 QUnit 测试套件的执行顺序。
例如,假设您要执行两个 QUnit 测试套件(qunit-tests-ajax.html 和 qunit-tests-dom.html),并且这些测试套件中包含的 QUnit 测试执行对 Web 服务的 Ajax 请求.显然,在执行测试时,您需要此 Web 服务在主机上。 Arquillian 可以自动将 Web 服务部署到容器中。在这种情况下,您的 Arquillian 测试用例将如下所示:
@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
}
}