2011-02-01 2 views
4

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

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

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

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

ответ

3

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

Отказ от ответственности: Я основатель Спока и комбайн Грейдл.

+0

@ peter-niederwieser Спасибо. Можете ли вы указать мне на хороший учебник (в терминах простой, я QA, а не кодер) на использовании одного из этих инструментов? Я ненадолго посмотрел на Юнит, но он не щелкнул. Нужен этот момент a-ha. – theCesspit

+0

На самом деле, я просто играл с веб-консолью Spock, и это помогло. Один из вопросов, который у меня есть, он останавливается после первой ошибки, которую он находит. С тем, как я хочу выполнять свои тесты, я вряд ли когда-либо откажусь при первой ошибке, но хочу зафиксировать все проблемы. Некоторые условия тестирования должны быть терминальными (например, некорректно созданный объект данных, который не сможет выполнить последующие тесты), но в большинстве случаев я хочу, чтобы список ошибок анализировался и затем передавался разработчику по мере необходимости (или для исправления моего тестового кода по мере появления новых элементов/функций). – theCesspit

+0

Одним из способов решения этого вопроса является наличие одного метода тестирования для каждого условия. –

1

Я использую Groovy для этой цели. Я только что написал тестовые примеры JUnit 4 в 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 в то время. Теперь может быть один, но это работает для меня.