Раскрытие информации: я участник проекта Arquillian.
Вы можете использовать расширение с открытым исходным кодом Arquillian Qunit для выполнения ваших тестов QUnit на Jenkins. В целом, Arquillian Qunit Extension можно легко использовать в средах непрерывной интеграции. На этом GitHub repo вы можете найти реальный пример того, как Arquillian Qunit Extension можно использовать для выполнения тестов QUnit на Travis CI безголовых машинах.
Arquillian - это проект сообщества JBoss.
Расширение Arquillian Qunit - это расширение Arquillian , которое автоматизирует тестирование JavaScript Qunit. Расширение Arquillian Qunit прозрачно интегрируется с инфраструктурой тестирования JUnit.
Вы можете найти больше информации об этом файле README . Кроме того, есть витрина , которая может быть выполнена через Maven и показывает, как настроить тестовый набор.
Используя это расширение, вы можете развернуть архив во время выполнения теста QUnit и / или выполнить один или несколько наборов тестов QUnit за одно выполнение. Кроме того, вы можете определить порядок выполнения QUnit Test Suite, используя аннотацию @InSequence.
Например, предположим, что вы хотите выполнить два набора тестов QUnit (qunit-tests-ajax.html и qunit-tests-dom.html) и что ваши тесты QUnit, включенные в эти наборы тестов, выполняют запросы Ajax к веб-службе , Очевидно, вам нужно, чтобы эта веб-служба находилась на хосте во время выполнения тестов. Arquillian может автоматически выполнить развертывание веб-службы в контейнере. В таком случае ваш тестовый пример 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
}
}