POM.xml 中多个依赖项目的 Junit 测试用例

Posted

技术标签:

【中文标题】POM.xml 中多个依赖项目的 Junit 测试用例【英文标题】:Junit test cases for multiple dependent project in POM.xml 【发布时间】:2014-01-17 17:13:14 【问题描述】:

我有一个项目 Test-A,在这个项目中我有应用程序的 junit 测试类。 现在,我有另一个名为 Test-B 的项目,在这个项目中我有应用程序的 junit 测试类。

测试-B,我已经包含了项目-A,即修改了 POM.xml 并包含为:

POM.xml:

<dependency>
    <groupId>com.abc.test-A</groupId>
    <artifactId>TestA</artifactId>
    <version>1.7</version>
    <scope>test</scope>
</dependency> 

问题: 当我为 Test-B 项目运行 mvn test 时,这也必须运行 Test-A junit 测试文件。我怎样才能运行这种测试?

我是junit 4.9版本。

【问题讨论】:

【参考方案1】:

您必须使用Maven Source Plugin 来打包测试源。

这是一个构建插件在您安装部署项目时打包测试源的示例:

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.2.1</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>test-jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

您必须将测试的依赖项添加为 test-jar 类型:

<dependency>
  <groupId>com.abc.test-A</groupId>
  <artifactId>TestA</artifactId>
  <version>1.7</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>

现在您可以从可以直接运行的工件 TestA 访问测试。

【讨论】:

【参考方案2】:

为您的项目 B 运行测试不会运行任何依赖项的测试。例如,您的项目也将依赖于 junit。您不希望这些测试能够运行。

【讨论】:

我的要求是运行一个,即从项目 B 运行项目 A 的 Junit 测试用例。

以上是关于POM.xml 中多个依赖项目的 Junit 测试用例的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 集成JUnit

配置一份需要junit和jdbc依赖的Maven项目基本配置文件。pom.xml?

pom.xml 添加 JUnit依赖

maven如何继承父工程的依赖关系

如何正确删除 Maven 项目中的依赖项

(15)SpringBoot使用Junit单元测试