【问题标题】:Running single integration test through terminal [duplicate]通过终端运行单个集成测试[重复]
【发布时间】:2013-11-12 08:58:27
【问题描述】:

我在 src/test-integration/java 下的项目中有一些集成测试。
我在运行集成测试方面没有问题。 但是如何通过终端运行单个集成测试?

当我使用mvn integration-test -Darg1=data1 时,它会运行所有的集成测试。

我尝试使用mvn integration-test -Dagr1=data1 -Dtest=IntegrationTestClass1,但没有成功

有什么解决办法吗?

我正在使用 maven-surefire-plugin-2.9 和 maven-failsafe-plugin-2.6

【问题讨论】:

  • 错误是什么?你确定你使用了正确的包IntegrationTestClass1for (问题是你可能会遇到默认包中的类问题)。
  • @rlegendi 没有错误,它只是运行所有集成测试而不是一个测试(IntegrationTestClass1)。是的,我使用了正确的包。
  • 我也试过 [stackoverflow.com/questions/894737/… 但没有成功
  • 向我们展示您的故障安全配置,因为src/test-integration/java 不是默认位置。 Surefire 用于单元测试,故障安全用于集成测试。
  • 我在你的 pom src/test-integration/java 中看不到?不完整?

标签: maven integration-testing


【解决方案1】:

阅读这篇文章:Running a Single Test

执行单一集成测试的正确方法是使用属性it.test

mvn -Dagr1=data1 -Dit.test=IntegrationTestClass1 verify

如果这不起作用,请发布您的 pom.xml,因为 src/test-integration/java 不是集成测试的标准位置。 按照惯例,所有测试的标准位置是src/test/java。默认情况下,所有集成测试都应具有后缀IT。这是集成测试的默认故障安全配置。

【讨论】:

  • 我以mvn integration-test -Darg=data -Pit 运行我的集成测试我也尝试了上述方法,但它运行了所有测试
【解决方案2】:

以下是我的 pom.xml,由于一些限制,我无法使用完整的 pom,但这是它的要点

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.9</version>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.surefire</groupId>
                    <artifactId>surefire-junit47</artifactId>
                    <version>2.8.1</version>
                </dependency>
            </dependencies>
            <configuration>
                <skipTests>false</skipTests>
                <failIfNoTests>false</failIfNoTests>
                <includes>
                    <include>**/*.class</include>
                </includes>
                <excludedGroups>com.IntegrationTest</excludedGroups>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.6</version>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.surefire</groupId>
                    <artifactId>surefire-junit47</artifactId>
                    <version>2.8.1</version>
                </dependency>
            </dependencies>
            <configuration>
                <reuseForks>true</reuseForks>
                <groups>com.IntegrationTest</groups>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                    </goals>
                    <configuration>
                        <skipITs>false</skipITs>
                        <skipTests>false</skipTests>
                        <includes>
                            <include>**/*.class</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

【讨论】:

  • 你应该编辑问题。
  • @MariuszS 应该编辑成什么?
  • pom.xml 应该是有问题的,而不是回答的。
猜你喜欢
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 2017-09-14
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
相关资源
最近更新 更多