Использование qUnit для тестирования Javascript - PullRequest
8 голосов
/ 17 декабря 2010

Я люблю qUnit для модульного тестирования JavaScript и успешно использую его для большой веб-хостинговой платформы, которая почти исключительно AJAX. Однако мне приходится запускать его в браузере вручную или как запланированное задание Windows, что не идеально.

Кто-нибудь запускал тесты jUnit как часть автоматизированного набора тестов, как вы, скажем, в Perl или Java?

Ответы [ 2 ]

7 голосов
/ 17 декабря 2010

Самым простым способом может быть запуск теста qUnit с Selenium 2 из теста JUnit. Selenium 2 открывает веб-страницы в Firefox, IE, Chrome или в своем собственном HtmlDriver и может делать практически все с отображаемой страницей, особенно с результатами теста qUnit.

import static org.junit.Assert.*;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class FooTest {

static WebDriver driver;

@BeforeClass
public static void setUpBeforeClass() throws Exception {
    driver = new FirefoxDriver();
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
    driver.close();
}

@Test
public void bar() throws Exception {
    driver.get("http://location/of/qUnitTest");

    //Handling output could be as simple as checking if all 
    //test have passed or as compound as parsing all test results 
    //and generating report, that meets your needs.
    //Code below is just a simple clue.
    WebElement element = driver.findElement(By.id("blah"));
    assertFalse(element.getText().contains("test failed"));     
}   
}
5 голосов
/ 17 декабря 2010

Я бы порекомендовал jstestdriver .Он позволяет запускать тесты на реальных экземплярах браузеров, но из командной строки, что означает, что его можно использовать в сборке CI или просто запускать как часть сценария сборки.

У него есть своя собственная структура утверждений,который я нашел лучше, чем qUnit.Однако, если по какой-то причине требуется qUnit, существует плагин, позволяющий писать тесты qUnit для бегуна jstestdriver.

...