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

如何将JUnit 5与现有的Eclipse项目集成?

华景焕
2023-03-14

现有的Eclipse项目使用Maven,但不知道JUnit。我应该/可以将JUnit集成到现有项目中,还是应该创建一个专门用于JUnit的新项目,或者有更好的选择吗?

共有2个答案

仲孙鸣
2023-03-14

另一个答案给出了如何将JUnit添加到项目设置中的技术答案。

但很抱歉,真正的答案是:不要将单元测试添加到其他项目中。创建一个新的。

进行开发时最重要的规则之一是单一责任原则。任何类/方法/xyz都应该做一件事。

换句话说:你现有的eclipse项目有责任为你的“产品”提供上下文。为测试提供上下文是不同的责任。

除此之外,你应该始终遵循“最佳实践”。最佳实践是在同一个项目中没有测试和生产代码。

你看,你绝对不希望你的测试源代码和你的产品代码位于同一个目录中。因此,您有两个项目,它们都可以使用相同的包,但它们的源代码位于不同的文件夹中!

(你不想这样做的原因是:你只想让你的测试依赖于你的生产代码。但是当文件位于同一个目录中时,你可能会无意中在另一个方向上创建依赖关系。)

长孙阳成
2023-03-14

通过在pom中包含以下依赖项,可以将JUnit5添加到该项目中。xml

<properties>
    <junit.jupiter.version>5.0.1</junit.jupiter.version>
    <junit.platform.version>1.0.1</junit.platform.version> 
</properties>

<!--
    JUnit5 dependencies:
     * junit-jupiter-api: for writing JUnit5 tests
     * junit-jupiter-engine: for running JUnit5 tests
     * junit-platform-xxx: the foundation for JUnit5
     * (Optionally) you might want to include junit-vintage-engine for running JUnit4 tests       
-->
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>${junit.jupiter.version}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>${junit.jupiter.version}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>${junit.platform.version}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-runner</artifactId>
    <version>${junit.platform.version}</version>
    <scope>test</scope>
</dependency>

要使Maven Surefire能够运行JUnit5测试,只需在pom中包含以下插件定义。xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${maven.surefire.plugin.version}</version>
    <configuration>
        <excludes>
            <exclude>**/MongoPopulatorTool.java</exclude>
        </excludes>
    </configuration>
    <dependencies>
        <!-- integrates JUnit5 with surefire -->
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-surefire-provider</artifactId>
            <version>${junit.platform.version}</version>
        </dependency>
        <!-- ensures that a JUnit5-aware test engine is available on the classpath when running Surefire -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit.jupiter.version}</version>
        </dependency>
    </dependencies>
</plugin> 

最后,为了使Eclipse的测试运行程序能够运行JUnit5测试,您必须运行Eclipse。1a(4.7.1a)发行版(或更高版本),请查看Eclipse文档。

 类似资料:
  • 我正在构建我的第一个Android应用程序,我在github上发现了一个java项目,我想和我的应用程序集成在一起。我是否可以手动将java文件添加到我的android项目目录 app->java->com.example.appname java客户机的src->main目录有一个嵌套的文件结构,所以我不确定这是否会引起问题。 我已经尝试了本文中的解决方案,但我没有看到步骤2中提供的选项如何将现

  • 问题内容: 如果我已有使用和容器的Web应用程序。将Akka集成到其中的正确方法是什么? 就像我将要拥有的并且彼此交流一样。开始使用这些参与者的切入点是什么?(例如:1.放到那里2.更改配置3.获取对actor的引用) 我找到了http://doc.akka.io/docs/akka/2.2-M3/general/configuration.html,但是他没有给我胶水。只想获取集成的真实示例。

  • 问题内容: 如何在Eclipse中将现有的Java项目添加到git中? 我注意到在创建项目时,有一个选项可以添加到源代码管理中,但是对于现有项目,我找不到此选项。这是可以从Eclipse中的git插件实现的,还是必须从命令行完成?(我使用的是Mac) 问题答案: 另一种方法(我发现内置的Eclipse工具有时很挑剔): 打开您的终端 导航到您的项目目录 键入以创建存储库 假设该文件夹中已经有文件,

  • 如何在这个现有项目中使用Maven? 此外,当我尝试添加Maven Project并在步骤“Select a Archetype”时,所有显示的原型都有版本“Release”。当我在这一步中单击Next时,Eclipse变得没有响应。它使用内存甚至没有增加。

  • 问题内容: 对于正在执行的项目,我们正在考虑使用Eclipse的Maven插件来自动化我们的构建。现在,该过程比应该的要复杂得多,并且我们希望Maven可以将事情简化为一键式构建。 我的问题是,是否存在使用Maven插件将现有的Eclipse Java项目转换为Maven项目的向导或自动导入器?或者我应该创建一个新的Maven项目并手动复制所有源文件,库等。 问题答案: 如果您只想创建一个默认的P

  • 如何将eclipse中现有的java项目添加到Git中? 我注意到,在创建项目时,有一个选项可以添加到源代码管理中,但我在现有项目中找不到这个选项。这是否可以从eclipse中的git插件实现,或者必须从命令行完成?(我在用Mac)