java - 使用maven项目测试另一个项目

标签 java maven junit dependencies project

我必须执行以下操作:

  • 在 Maven 中创建项目“A”。
  • 创建另一个项目“B”,其中包含“A”的 JUnit 测试
  • 添加maven依赖,以便B用于测试A

有很多资源描述了如何向现有项目添加测试,但我并没有真正找到为单元测试添加另一个项目的方法。

这是我的想法:

项目A

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>group</groupId>
    <artifactId>A</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>group</groupId>
            <artifactId>B</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

项目 B(测试)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>group</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>group</groupId>
            <artifactId>A</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
    </dependencies>
</project>

单元测试(占位符)

package group.B;

import org.junit.*;
import group.A.aClass;


public class aClassTest {

    @Test 
    void testTest() {
        assert(false);  // this should fail, right?
    }
}

我正在使用带有 Maven 插件的 Netbeans,正如您所知。两个项目现在互相依赖,依赖关系很好。

提前致谢!

最佳答案

你的上面产生了循环依赖。

我过去这样做不是为了单元测试,而是为了集成测试。我的建议是B依赖于A(A不依赖于B)。在Bsrc/test/java中编写您需要的所有测试。当您在 B 上运行 mvn test 时,它会通过或失败,具体取决于测试是否通过。根据B中的测试,没有办法使A编译失败。

关于java - 使用maven项目测试另一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133012/

相关文章:

java - 使用 JSF 的两个用户井字游戏

java - Junit maven构建错误(maven-surefire-plugin :2. 19.1:test failed: There was an error in the forked process)

java - 在 Maven 项目中与依赖项共享单元测试

java - 使用 JUnit 对 Java 中 Daemon Thread 的代码进行单元测试

java - 如何使用 JUnit 在 Java 中测试简单的命令行应用程序

java - IOUtils.copy 是否会阻塞直到写入完成?

java - 使用spark streaming从kafka读取数据时出现lz4异常

java - 我正在尝试编写一种方法,对数组中的相邻单元格进行求和,并用获得的值填充第二个数组中的位置

java - Maven 中资源文件夹的用途是什么?

intellij-idea - 如何配置IntelliJ以使用JUnit 4运行测试?