[JAVA] Exécutez JUnit et Spock dans un projet maven

Contexte

Aperçu, ce que vous voulez faire

――Je souhaite ajouter Spock tout en conservant le JUnit existant. --Je veux exécuter JUnit et Spock avec une seule commande ( ./mvnw test```) --Je ne dis pas à quel point Spock est génial

C'est une histoire. Dédié à ceux qui testent encore avec JUnit à Maven ...

environnement

procédure

couler

  1. Pour le moment, ajoutez un spock et écrivez un test Créez des fichiers groovy à compiler avec maven 1.Faites ** Spec. * Fichier une cible de test avec maven

Pour le moment, ajoutez un spock et écrivez un test

  1. Ajoutez une dépendance à pom.xml

    <dependency>
        <groupId>org.spockframework</groupId>
        <artifactId>spock-core</artifactId>
        <version>1.3-groovy-2.5</version>
        <scope>test</scope>
    </dependency>
    
  2. Rédigez un test

    package jp.co.trech
    
    import spock.lang.*
    
    class AppSpec extends Specification {
        def 'Échantillon test'() {
            expect:
            Math.max(1, 2) != 2 //Je veux vérifier si le test est en cours, j'ose donc en faire un test qui échoue
        }
    }
    
  3. Essayez d'exécuter un test

    ./mvnw test
    → BUILD SUCCESS
    

→ Aucun fichier compilé n'est généré et Spock n'est pas en cours d'exécution

Compilez des fichiers groovy avec maven

  1. Dans gradle, le fichier groovy a été compilé simplement en mettant spock dans la dépendance, mais maven n'a pas compilé, alors ajoutez ce qui suit
  1. Essayez d'exécuter un test

    ./mvnw test
    → BUILD SUCCESS
    

→ Un fichier compilé a été généré! → Mais Spock ne court pas

Target ** Spec. * Fichier pour l'exécution du test avec maven

  1. Ajoutez ce qui suit après le maven-compiler-plugin ci-dessus

        <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>
    

La version de maven-surefire-plugin dépend de la version de java, donc référez-vous à Maven Surefire Plugin.

  1. Essayez d'exécuter un test

    ./mvnw test
    → BUILD FAILURE
    

→ Un fichier compilé a été généré! → Spock a également été exécuté, donc le test a échoué!

→ Modifiez le test Spock et si le test réussit, vous avez terminé!

Conclusion

--Spock a été facilement mis en gradle, mais il est difficile d'ajouter Spock à maven


URL de référence

Compiling Groovy maven-surefire-plugin Using JUnit groovy/groovy-eclipse Groovy Eclipse Maven plugin

Recommended Posts

Exécutez JUnit et Spock dans un projet maven
Exécutez JUnit et Spock dans un projet maven
Exécuter des tests de projet modulaire dans Gradle (JUnit5 + TestFX)
Exécuter un projet Spring Boot avec VS Code
Jusqu'à ce que vous construisiez un projet écrit scala avec Maven et que vous l'exécutiez avec la commande scala.
Tendances populaires dans Gradle et Maven
Comment exécuter JUnit dans Eclipse
Sortie du rapport de test JUnit dans Maven
Comment faire un projet Maven
Créez un projet Spring Boot avec intellij et quittez immédiatement après le lancement
Création d'un projet (et d'un référentiel GitHub) à l'aide de Java et Gradle avec IntelliJ IDEA
Projet CI pour Maven dans Azure Pipelines
Ajouter .gitignore lors de la création d'un projet dans Xcode
Comment exécuter une tâche djUnit dans Ant
J'ai créé un conteneur Docker pour exécuter Maven
[Eclipse / Tomcat] Servlet + JSP dans le projet webapp de Maven
Conseils Java - Créez un projet Spring Boot avec Gradle
Ajouter un projet dans n'importe quel dossier avec Gradle
Exécutez JVM-Math-Language comme un projet Gradle à portée de main
Créer un projet Maven
Jusqu'à ce que vous créiez un projet Spring Boot dans Intellij et que vous le transmettiez à Github
Je veux ESLint dans le projet Maven. Je veux exécuter Node.js sans le mettre dans mon environnement.
Refactoring dans JUnit
[CentOS, Eclipse] Charger les fichiers de bibliothèque dans le projet C
Ecrire une classe en Kotlin et l'appeler en Java
Afficher une image de chargement dans JavaFX puis afficher une autre image
J'ai créé un serveur et un client Restful au printemps.
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Java11: exécuter le code Java dans un seul fichier tel quel