Groovy для тестирования API - PullRequest
       9

Groovy для тестирования API

5 голосов
/ 02 февраля 2011

Я пишу серию автоматизированных сквозных тестовых случаев, в которых используется RestFUL API.

У меня есть несколько хороших тестовых сценариев, написанных на Groovy, которые предоставляют такие тесты и обеспечивают нам необходимую уверенность, и мы стремимся интегрировать их в ночные сборки, а также позволить команде QA запустить их , Это шаг над модульным тестированием, так как мы рассматриваем полные сквозные рабочие процессы, а не атомарные этапы.

Вывод в настоящее время доступен для чтения человеком, при этом каждое условие теста выводит строку, которая определяет тест, читаемое значение и значение true / false, чтобы показать, что условие теста прошло.

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

Ответы [ 2 ]

4 голосов
/ 02 февраля 2011

JUnit, TestNG и Spock - все это разумные варианты для написания (а не только единичных) тестов в Groovy.Выберите один из них и запустите тесты с выбранной вами системой сборки.Система сборки, такая как Gradle , которая может загружаться сама, облегчит жизнь для QA (установка не требуется).

Отказ от ответственности: я основатель Спока и коммиттер Gradle.

1 голос
/ 02 февраля 2011

Я тоже использую Groovy для этой цели.Я просто написал тестовые примеры JUnit 4 в Groovy, а затем написал свой собственный скрипт-бегун groovy, который собирает результаты и распечатывает их для меня.Это сценарий для вызова JUnit 4 Groovy-тестов:

def (Result result, Duration duration) = time {
      JUnitCore.runClasses(TestA, TestB, TestC)
}

String message = "Ran: " + result.getRunCount() + ", Ignored: " + result.getIgnoreCount() + ", Failed: " + result.getFailureCount()
println ""
println "--------------------------------------------------"
println "Tests completed after " + duration
println "--------------------------------------------------"
if (result.wasSuccessful()) {
    println "SUCCESS! " + message
    println "--------------------------------------------------"
} else {
    println "FAILURE! " + message
    println "--------------------------------------------------"
    result.getFailures().each {
        println it.toString() 
    }
    println "--------------------------------------------------"
}

def time(closure) {
    DateTime start = new DateTime()
    Object result = closure()
    [result, new Duration(start, new DateTime())]
}

Я написал этот сценарий, потому что в то время я не мог найти повторно используемый JUnit 4 для Groovy.Может быть один сейчас, но это работает для меня.

...