--maven Projekt
――Ich möchte Spock hinzufügen und dabei die vorhandene JUnit beibehalten.
Es ist eine Geschichte. Gewidmet denen, die noch mit JUnit in Maven testen ...
Fügen Sie pom.xml eine Abhängigkeit hinzu
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.3-groovy-2.5</version>
<scope>test</scope>
</dependency>
Schreiben Sie einen Test
package jp.co.trech
import spock.lang.*
class AppSpec extends Specification {
def 'Probentest'() {
expect:
Math.max(1, 2) != 2 //Ich möchte überprüfen, ob der Test ausgeführt wird, daher wage ich es, ihn zu einem fehlgeschlagenen Test zu machen
}
}
Versuchen Sie, einen Test durchzuführen
./mvnw test
→ BUILD SUCCESS
→ Es wird keine kompilierte Datei generiert und Spock wird nicht ausgeführt
Siehe maven-compiler-plugin nur für 3.6.2 oder höher (siehe Groovy Eclipse Maven-Plugin) )
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerId>groovy-eclipse-compiler</compilerId>
<verbose>true</verbose>
<compilerArguments>
<indy/><!-- optional; supported by batch 2.4.12-04+ -->
<configScript>config.groovy</configScript><!-- optional; supported by batch 2.4.13-02+ -->
<!-- consult Lombok docs to confirm agent class name for your version -->
<javaAgentClass>lombok.launch.Agent</javaAgentClass>
</compilerArguments>
<fork>true</fork>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>3.3.0-01</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<version>2.5.6-01</version>
</dependency>
<dependency><!-- optional;Fügen Sie hinzu, wenn Sie Lombok in Ihrem Projekt verwenden-->
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Versuchen Sie, einen Test durchzuführen
./mvnw test
→ BUILD SUCCESS
→ Eine kompilierte Datei wurde generiert! → Aber Spock läuft nicht
Fügen Sie nach dem obigen Maven-Compiler-Plugin Folgendes hinzu
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<failIfNoTests>true</failIfNoTests>
<includes>
<include>**/*Test.*</include>
<include>**/*Spec.*</include>
</includes>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>3.0.0-M1</version>
</dependency>
</dependencies>
</plugin>
Die Version des Maven-Surefire-Plugins hängt von der Java-Version ab. Weitere Informationen finden Sie unter Maven Surefire-Plugin.
Versuchen Sie, einen Test durchzuführen
./mvnw test
→ BUILD FAILURE
→ Eine kompilierte Datei wurde generiert! → Spock wurde ebenfalls ausgeführt, daher ist der Test fehlgeschlagen!
→ Ändern Sie den Spock-Test und wenn der Test erfolgreich ist, sind Sie fertig!
--Spock war leicht in Gradle zu setzen, aber es ist schwierig, Spock zu Maven hinzuzufügen
Compiling Groovy maven-surefire-plugin Using JUnit groovy/groovy-eclipse Groovy Eclipse Maven plugin
Recommended Posts