2016-09-18 6 views
1

Я пишу набор рискованных скриптов, которые будут использоваться как часть Библиотеки трубопроводов Дженкинса. В настоящее время я использую простой старый JUnit, чтобы проверить их, но хотел бы переключиться на Spock. Я просто запускаю тесты из командной строки, вызывая следующий скрипт groovy.Как использовать Spock из командной строки

import groovy.util.AllTestSuite 
import junit.textui.TestRunner 

System.setProperty(AllTestSuite.SYSPROP_TEST_DIR, "./tests") 
System.setProperty(AllTestSuite.SYSPROP_TEST_PATTERN, "**/*Test.groovy") 

TestRunner.run(AllTestSuite.suite()) 

Я пытаюсь понять, что эквивалентный сценарий будет использовать спецификации Spock. Моя первая попытка состояла в том, чтобы переключить SYSPROP_TEST_PATTERN на "**/*Spec.groovy. Я написал один ...Spec.groovy файл и сидел под ./tests который выглядит следующим образом:

@Grab(group='org.spockframework', module='spock-core', version='1.0-groovy-2.3') 
import spock.lang.* 

class UtilsSpec extends Specification { 

    def "Just testing"() { 

    expect: 
     1 + 1 == 2 

    } 
} 

Когда я призываю мой заводной сценарий, хотя я получаю:

java.lang.RuntimeException: Не знаю, как лечить /SourcCode/jenkins/pipeline-utils/tests/JustTestingSpec.groovy в качестве испытания JUnit

Это имеет смысл. Мне нужно использовать Спутник, но я посмотрел источник Spock и Sputnik, а также пример Spock, но все они предполагают, что вы используете maven или gradle. Я не могу понять, как правильно обращаться к Спутнику. Есть идеи?

+0

См. Этот пример на GitHub: https://gist.github.com/ysb33r/5825457 – BalRog

+0

@BalRog, я посмотрел на ваш пример и его начало, но то, что он отсутствует в приведенном выше, - это возможность автоматически находить и выполнить все спецификации. –

ответ

0

Несмотря на то, что вы можете спросить, и BalRog уже предложила решение, в конечном итоге лучше использовать Gradle или Maven для запуска тестов из командной строки.

Все обучающие программы Jenkins, с которыми вы столкнетесь, расскажут о Maven и/или Gradle, и поэтому было бы гораздо разумнее использовать систему сборки, чем пользовательские скрипты.

+0

Думаю, я могу понять, как это сделать с Maven или Gradle, но я не понимаю, почему я хотел бы это сделать. Какова добавленная стоимость для вытягивания такой системы. Я не использовал Gradle много, но я знаю, что Maven вряд ли легкий вес. Сколько в мире мне нужно будет скачать, чтобы запустить несколько тестов? –

+0

Если вы используете Gradle или Maven, единственной библиотекой, которую они загружат, является Spock (и любая другая библиотека, используемая вашим приложением). Gradle поставляется с бегуном Gradle, который также загружает себя. – kazanaki

+0

«Такая система». Оба Maven и Gradle - это системы построения, предназначенные именно для вашей цели. Не могли бы вы написать большой проект C без make? Вы могли бы написать большой проект C# без Msbuild? Не могли бы вы написать большой проект Javascript без node.js и транспортира? – kazanaki

 Смежные вопросы

  • Нет связанных вопросов^_^