当前位置: 首页 > 知识库问答 >
问题:

通过Maven一起运行jUnit和spock测试

湛光明
2023-03-14
├───groovy
│   │
│   └───integration
│       │   ITTestSuite.groovy
│       │
│       ├───pages
│       │       ZMainPage.groovy
│       │
│       └───test
│               ZMainSpec.groovy
│
├───kotlin
│   └───com
│       └───example
│           └───zou
│               │   ZouApplicationTests.kt
│               │
│               ├───model
│               │       ArticleTest.kt -- jUnit
│               │       PortalTest.kt -- jUnit
│               │
│               └───services
│                       TextAnalysisServiceSpec.groovy -- Spock
│                       TextAnalysisServiceTest.kt -- jUnit
    <build>
    <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
    <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.codehaus.gmavenplus</groupId>
            <artifactId>gmavenplus-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generateStubs</goal>
                        <goal>compile</goal>
                        <goal>generateTestStubs</goal>
                        <goal>compileTests</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-all</artifactId>
                    <version>${groovy.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <wait>1000</wait>
                <maxAttempts>180</maxAttempts>
            </configuration>
            <executions>
                <execution>
                    <id>run-integration-tests</id>
                    <goals>
                        <goal>start</goal>
                    </goals>
                    <configuration>
                        <skip>${skipITs}</skip>
                    </configuration>
                </execution>
                <execution>
                    <id>post-integration-test</id>
                    <goals>
                        <goal>stop</goal>
                    </goals>
                    <configuration>
                        <skip>${skipITs}</skip>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
            <version>${kotlin.version}</version>
            <configuration>
                <compilerPlugins>
                    <plugin>spring</plugin>
                </compilerPlugins>
                <jvmTarget>1.8</jvmTarget>
            </configuration>
            <executions>
                <execution>
                    <id>compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.jetbrains.kotlin</groupId>
                    <artifactId>kotlin-maven-allopen</artifactId>
                    <version>${kotlin.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20.1</version>
            <configuration>
                <skipTests>${skipUTs}</skipTests>
                <includes>
                    <include>**/*Spec.java</include>
                    <include>**/*Test.*</include>
                </includes>
            </configuration>
        </plugin>
mvn test

mvn verify

只启动jUnit测试和集成测试。TextAnalysisServiceSpec.groovy从不执行。

下面是Maven输出的一部分:

[INFO] --- gmavenplus-plugin:1.6:compile (default) @ zou ---
[INFO] Using Groovy 2.4.13 to perform compile.
[INFO] No sources specified for compilation.  Skipping.

我在StackOverflow上发现了几乎相同或相似的问题,但在我的项目中没有一个响应起作用。

    null
    <execution>
        <id>test-compile</id>
        <phase>test-compile</phase>
        <goals>
            <goal>test-compile</goal>
        </goals>
    </execution>

共有1个答案

孔华池
2023-03-14

这里解释了解决方案-https://kotlinlang.org/docs/reference/using-maven.html下的编译Kotlin和Java源代码:

要编译混合代码应用程序,应在Java编译器之前调用Kotlin编译器

mixed这个词很重要,因为它也适用于Groovy的这种情况。:-)

 类似资料:
  • 我目前正在做一个学校的作业,我正在努力与测试部分。出于某种原因,单元测试单独运行时运行良好,但一起运行时就不行了。我知道这与我在他们之间共享对象有关,而我不应该基于我以前的搜索,但我一生都无法找出需要改变什么来解决这个问题。下面是ApplientService类和ApplientServiceTest类的代码。任何帮助都将非常感谢,因为我已经被困在这个问题上一段时间了,现在知道这可能是其他人会立即

  • 我有一堆JUnit测试,它们都单独运行。每一个都是一个真正的独立单元测试--被测试的单个类。不需要上下文。我可以在Eclipse中或通过maven/surefire-plugin单独或一起运行它们。 此后,我添加了一个新的集成测试,它利用了Spring上下文等,并使用了SpringJUnit4ClassRunner。一旦我将这个测试添加到我的套件中,任何测试用例都会在这个类失败后运行。 我不确定这

  • 使用maven对Spring应用程序进行单元测试后,在完成构建时遇到问题。我注意到mvn安装没有完成,在运行了所有单元测试之后,它似乎挂起了。如果运行我将从cmd行获得要完成的测试,但构建挂起 这就是它的结尾。两个线程正在运行,不确定我在那里做了什么。无论如何,为了排除故障,我删除了所有测试并让程序完全构建。如果我运行,我就可以完成它。最后,我添加了一个JUnit测试,它本质上是一个system.

  • 我得堆栈: 想法2019.1.3 Springboot 2.1.6 Java 11 Maven 3.8.0 Groovy 2.5 史巴克1.3 JUnit jupiter 5.5.1 JUnit vintage 5.5.1 GMavenPlus插件2.7.1 我们想开始在Spock测试框架中编写测试。我跟着这个howto,但没有成功。当我尝试运行所有测试时,我的spock测试没有运行。 我能运行一

  • 在以前的一个项目中,我使用Spock测试框架对Java代码进行单元测试。我发现这非常有效,所以我尝试将Spock测试添加到我当前的项目中,该项目使用Maven作为构建工具(前一个项目使用Gradle)。虽然我可以让Maven编译我的Spock测试(使用),但我无法让Maven运行这些测试。 我做了一个简单的例子来演示我在两个文件中的问题: null 当我执行(或)时,我希望运行单个单元测试并失败。

  • 问题内容: 我很惊讶地没有找到答案。如果我缺少基本知识,我将很高兴知道这一点。 有大量的旧版代码库已从1.4升级到Java 6。代码中存在大量的JUnit 3测试,并将它们组织到测试套件中,该套件可在Eclipse中与JUnit 4默认运行程序一起成功运行。 现在,我要添加新的测试,这些测试是纯JUnit 4测试(注释,无TestCase等)。将旧的JUnit 3测试套件和新的JUnit 4测试一