Ich schreibe eine Reihe von groovigen Skripten, die als Teil einer Jenkins Pipeline Library verwendet werden sollen. Momentan benutze ich einfach alte JUnit, um sie zu testen, würde aber gerne zu Spock wechseln. Ich führe einfach die Tests von der Befehlszeile aus, indem ich das folgende groovige Skript aufruft.Verwendung von Spock über die Befehlszeile
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())
Ich versuche herauszufinden, was das äquivalente Skript wäre, um Spock-Spezifikationen auszuführen. Mein erster Versuch war, die SYSPROP_TEST_PATTERN zu "**/*Spec.groovy
zu wechseln. Ich habe eine ...Spec.groovy
Datei geschrieben und unter ./tests
sitzen, die wie folgt aussieht:
@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
}
}
Wenn ich meine groovy Skript aufrufen obwohl ich:
java.lang.RuntimeException: Sie wissen nicht, wie man behandeln /SourcCode/jenkins/pipeline-utils/tests/JustTestingSpec.groovy als JUnit-Test
, die Sinn macht. Ich muss Sputnik verwenden, aber ich habe mir die Spock- und Sputnik-Quelle und das Spock-Beispielprojekt angeschaut, aber alle nehmen an, dass Sie Maven oder Gradle verwenden. Ich kann nicht den richtigen Weg finden, Sputnik direkt anzurufen. Irgendwelche Ideen?
Sehen Sie dieses Beispiel auf GitHub: https://gist.github.com/ysb33r/5825457 – BalRog
@BalRog, schaute ich auf Ihr Beispiel und es ist ein Anfang, aber was es von den oben genannten fehlt ist die Fähigkeit, automatisch zu finden und führe alle Spezifikationen aus. –