天道酬勤,学无止境

未找到测试 - 在准系统 Spring Boot Maven 项目上运行 jUnit 5 测试用例时出现空测试套件(No tests were found - Empty test suite when running jUnit 5 testcase on bare-bone Spring Boot Maven project)

问题

所以我们得到了消息

Process finished with exit code 0
Empty test suite.

当尝试在我们的多模块项目上运行 Junit5 测试用例时,为了测试问题的根源,我决定从头开始尝试一个新项目(我使用的是 IntelliJ IDEA 2018.2.4)。

我在以下简单项目 POM 文件中遇到了同样的问题:

<?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>com.org.bu.dep.app</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.0.5.RELEASE</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.vaadin.external.google</groupId>
                    <artifactId>android-json</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.3.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.3.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

我尝试使用/不使用 junit-vintage-engine 相同的结果。

以下是测试类:

package com.org.bu.dep.app.demo;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class DemoApplicationTests {

    @Test
    public void contextLoads() {
        Assertions.assertTrue(true);
    }

}

在运行窗口上,它显示No tests were found

我尝试了许多变体,例如带/不带@SpringBootTest注释,我也尝试了@ExtendWith(SpringExtension.class)无济于事。

我已经用谷歌搜索过,大多数结果/SackOverflow 的答案似乎来自 2016/2017 年,重点是旧版本的 IntelliJ,它与 Junit 5 有问题,这似乎不相关。

请问,有什么建议吗? 如果我们花太多时间,它将被迫恢复到 4,我非常不希望这样做:)

回答1

就我而言,我有一个private测试方法——它应该是public

回答2

因此,适用于带有 Spring Boot 2 的 Junit 5 是以下 3 个:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.3.1</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.3.1</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-params</artifactId>
    <version>5.3.1</version>
    <scope>test</scope>
</dependency>

使用空项目进行测试和验证。

请注意@Michael Legart 的回答建议添加

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.22.1</version>
</plugin>

Maven 测试(和 Jenkins)需要检测和执行测试!

回答3

什么对我有用。

不要自己使用版本添加junit-bom

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.junit</groupId>
            <artifactId>junit-bom</artifactId>
            <version>5.6.1</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <scope>test</scope>
    </dependency>

同样使用maven-surefire-plugin不要添加版本

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
回答4

我很确定这是因为 Spring Boot 2 没有使用 JUnit 5 所需的 Maven Surefire 插件版本。尝试:

   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>2.22.1</version>
   </plugin>

在 2.22.0 中添加了 JUnit5 支持,请参阅 https://issues.apache.org/jira/browse/SUREFIRE-1330

回答5

由于您使用的是 Intellij。 您是否将您的java test folder标记为Test Sources Root

例子:

回答6

转到:文件 -> 项目设置 -> 模块并添加以下依赖项。

添加' com.github.database-rider:rider-junit5:1.2.5 '

' com.github.database-rider:rider-junit5:1.2.5 ' 将使测试找到并运行。

回答7

我知道这是一个老问题,但也许它可以帮助某人。 我收到错误消息是因为我从一个草稿文件中复制粘贴了一个方法,该方法声明为static

回答8

如果您在接口或抽象类中编写测试,例如

public interface FooTests() {

  @Test
  default void fooTest() {
    ...
  }
}

然后由“真正的”测试器类实现,

public class Tester() implements FooTests, BarTests {
  ...
}

那么可能发生的情况是您第一次自己运行其中一个测试,导致 IntelliJ 将其运行配置记住为FooTests::fooTest而实际上它需要是Tester::fooTest 。 您可以通过修改测试的运行配置来覆盖它,例如

您想用非接口、非抽象的测试运行器类替换Method:类。

回答9

使用 IntelliJ,我必须删除目标文件夹并运行测试以消除此错误

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Spring Boot微服务项目实战(第2版)学习笔记-第1章第一个Spring Boot项目
    第一个Spring Boot项目 1.Spring Boot开发环境准备(IDEA可为开发做全部的准备)1.1 安装JDK(本处直接在IDEA中安装JDK,无需书中步骤)1.2 安装Intellij IDEA1.3 安装Apache Maven(本处直接在IDEA中安装) 2.一分钟快速搭建Spring Boot项目2.1 使用Spring Initializr新建项目2.2 测试2.3 Spring Boot三种启动方式 3.Spring Boot文件目录介绍3.1 工程目录3.2 入口类3.3 测试类3.4 pom文件 4.Spring Boot 2.x新特性4.1 配置变更4.2 第三方类库升级4.3 HTTP/2支持4.4 响应式Spring编程支持4.5 其他新特性 5.Maven Helper插件的安装和使用5.1 Maven Helper插件安装5.2 Maven Helper插件使用 Spring Boot是目前流行的微服务框架,倡导“约定优先于配置”,其设计目的是用来简化新Spring应用的初始化搭建以及开发过程。SpringBoot提供了很多核心的功能,比如自动化配置、提供starter简化Maven配置、内嵌Servlet容器、应用监控等功能,让我们可以快速构建企业级应用程序。 本章主要介绍开始学习Spring Boot之前的环境准备
  • 高薪必备的一些Spring Boot高级面试题
    自Spring Boot诞生以来,就引起了业界轰动,目前越来越多的公司技术选型选择拥抱Spring Boot。所以Spring Boot也成为面试必问的问题之一。下面的问题是小胖哥面试了很多候选人后总结出来的,希望对你有所帮助问 Spring和Spring Boot有什么区别?答Spring Framework提供了多种功能,使Web应用程序的开发更加容易。这些功能包括依赖注入,数据绑定,面向方面的编程,数据访问等等。随着Spring社区的壮大,Spring慢慢变得越来越复杂,不再像开始宣称的那么轻量级。开发应用程序的配置量越来越大令开发者头疼。这时Spring Boot就派上用场了 - 它采用“约定大于配置”的思想简化了配置,对Spring提供的功能和配置而且将一些功能抽象成为“Starter”开箱即用、按需引用。极大地简化了开发。问 我们如何使用Maven设置Spring Boot应用程序?答我们可以像在任何其他库中一样在Maven项目中包含Spring Boot。但是,最好的方法是从spring-boot-starter-parent项目继承并声明依赖于Spring Boot启动器。这样做可以让我们的项目重用Spring Boot的默认设置。继承spring-boot-starter-parent项目非常简单 - 我们只需要在pom.xml中指定一个parent元素
  • Eclipse没有发现由NoClassDefFoundError导致的LauncherFactory使用JUnit 5的测试(Eclipse No tests found using JUnit 5 caused by NoClassDefFoundError for LauncherFactory)
    问题 问题 每当我运行项目JUnit测试(将JUnit 5与Java 9和Eclipse Oxygen 1.a结合使用)时,都会遇到Eclipse无法找到任何测试的问题。 说明 在运行配置下,eclipse甚至找不到用@Test注释的方法,而是只向我显示“ (所有方法) ”。 下图希望可以更好地了解我的设置: 控制台输出: java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance
  • IntelliJ 编译错误 zip END 标头未找到(IntelliJ Compilation Error zip END header not found)
    问题 问题 我无法在 Java 9 和 10 上的 IntelliJ build 182.4505.22 上为导入的 Eclipse 项目编译 Java 代码。编译模块或任何单个文件时显示以下错误: Error:(1, 1) java: cannot access edu.wit.cs.comp2000 zip END header not found 细节 该项目的结构如下: 完整的编译时输出如下: 已经尝试过 我已经查看了此处和此处的帖子,但未提供任何相关详细信息。 我曾尝试在 Java 9 和 10 上进行编译,这没什么区别。 我已经在 LinkedBag 中编写了一个 main 方法,并试图独立于 JUnit 运行它,这导致了同样的错误。 IntelliJ 没有在我的测试类中正确显示测试图标,所以我怀疑 JUnit(或缺少 JUnit)是问题的原因,但是我不确定如何继续。 编译适用于其他项目(没有 JUnit 测试)就好了。 更新 该代码似乎在 Java 1.8 上按预期编译和测试没有问题。 每次切换到 Java 9 或 10 都会导致上述问题。 我开始怀疑我的导师的一个依赖项特别需要 Java 1.8,但是如果有人可能有解决方案,我仍然希望使用较新版本的 Java。 回答1 如上所述,只需删除损坏的缓存并重新启动 Intellij。 在命令行中运行 gradle
  • SpringBoot快速入门
    Spring boot是一个脚手架(而非框架),构建于Spring框架(Framework)基础之上,基于快速构建理念,提供了自动配置功能,可实现其开箱即用特性(创建完一个基本的项目以后,可零配置或者少量配置即可运行我们的项目),其核心主要有如下几个方面: 起步依赖(Starter Dependency)-启动依赖;自动配置(Auto Configuration)-开箱即用;健康检查(Actator)-健康监控; 文章目录 一、项目创建及结构分析二、项目业务初步实现及测试(一)业务实现:(二)项目业务增强实现及测试FAQ分析 一、项目创建及结构分析 打开STS 集成开发工具,创建spring boot项目,其具体步骤如下: 打开项目新建窗口(快捷键ctrl+n), 搜索spring,选择spring starter 项目。 填写项目基本信息 选择Spring Boot版本 点击finish之后,项目便开始从maven配置中指定的私服服务器(例如阿里云的maven服务器)去下载起步依赖(SpringBoot项目中默认指定了项目启动时需要的一些jar包依赖),这个过程可能会比较耗时(网络最好不要用手机网络,会导致很多资源下载不下来),假如指定版本的springboot项目以前创建过,它会默认先从本地库查找,假如本地库没有,则从远程库去下载。 所以第一次新建项目可能会耗时比较长;
  • “application.yml”中的 Spring Boot 属性未从 JUnit 测试加载(Spring Boot properties in 'application.yml' not loading from JUnit Test)
    问题 我究竟做错了什么? 我正在使用这个独立的小应用程序,它运行并找到我的src/main/resources/config/application.yml 。 相同的配置不适用于 JUnit,见下文: @Configuration @ComponentScan @EnableConfigurationProperties public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class); } } @Component @ConfigurationProperties public class Bean{ ... } 以下不起作用,未加载application.yml中的相同属性并且Bean只有null值: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = TestApplication.class) public class SomeTestClass { ... } 回答1 试试这个: @RunWith(SpringJUnit4ClassRunner.class)
  • IDEA快速创建SpringBoot项目
    一、概述 Springboot项目,java工程和web工程都可以以jar运行,所以推荐创建jar工程。 二、快速创建SpringBoot项目两种方式 Springboot只会扫描启动类当前包和以下的包。 方式一(推荐:会自动创建启动类和pom引用): 1.选中项目 > New Project > Spring Initializr > 选择Project SDK > 默认 > Next > Packaging: Jar (选择Jar启动) Spring Boot 默认Jar使用嵌入式Tomcat,默认不支持JSP。 Mac结束查看端口: lsof -i tcp:8080 方式二: 1.选中项目 > New Project > Maven > 选择Project SDK > 默认 > Next GroupId:组织或者公司名称 ArtifactId:项目在组织中的唯一ID 2.pom文件继承spring-boot-starter-parent <?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故障安全不执行测试(Maven fail-safe not executing tests)
    问题 我已经整理了StackOverflow和许多其他站点,找到了许多其他相关文章,并遵循了所有上述建议,但最终,故障保护跳过了我的测试。 我的JUnit测试位于: myModule/src/main/test/java/ClientAccessIT.java 我跳过了surefire,因为此模块中没有任何单元测试: <!-- POM snippet --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> 我正在尝试使用failsafe运行集成测试: <!-- POM snippet --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <id>run-tests</id> <phase>integration-test</phase> <goals> <goal>integration-test</goal>
  • Maven找不到要运行的JUnit测试(Maven does not find JUnit tests to run)
    问题 我有一个Maven程序,它可以正常编译。 当我运行mvn test它不会运行任何测试(在TESTs标头下显示There are no tests to run. )。 我已经用一个超级简单的设置重新创建了这个问题,在使用-X时,将在下面以及输出中包括该设置。 单元测试可以从eclipse正常运行(都使用其默认的junit软件包,而当我包括maven下载的junit.jar时)。 同样,mvn test-compile可以在test-classes下正确地创建该类。 我在带有Maven 3.0.2和Java 1.6.0_24的OSX 10.6.7上运行此代码。 这是目录结构: /my_program/pom.xml /my_program/src/main/java/ClassUnderTest.java /my_program/src/test/java/ClassUnderTestTests.java pom.xml: <?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
  • build.gradle文件详解
    建议阅读:https://www.cnblogs.com/mingfeng002/p/11751119.html 原文链接:https://blog.csdn.net/jiaov/article/details/86557527 build.gradle - 文件包含项目构建所使用的脚本。settings.gradle - 文件将包含必要的一些设置,例如,任务或项目之间的依懒关系等 1. build.gradle //构建脚本(给脚本用的脚本) buildscript { //存储一个属于gradle的变量,整个工程都能用,可通过gradle.ext.springBootVersion使用 ext { springBootVersion = '2.1.2.RELEASE' } /*配置仓库地址,从而找到外部依赖 按照你在文件中(build.gradle)仓库的顺序寻找所需依赖(如jar文件), 如果在某个仓库中找到了,那么将不再其它仓库中寻找 */ repositories { //mavenLocal()本地库,local repository(${user.home}/.m2/repository) mavenCentral()//maven的中央仓库 //阿里云Maven远程仓库 maven { url "http://maven.aliyun.com/nexus
  • 执行 JpaTest 时无法找到 @SpringBootConfiguration(Unable to find a @SpringBootConfiguration when doing a JpaTest)
    问题 我是框架的新手(刚刚通过了课程),这是我第一次使用 Spring Boot。 我正在尝试运行一个简单的 Junit 测试,看看我的 CrudRepositories 是否确实在工作。 我不断收到的错误是: 无法找到 @SpringBootConfiguration,您需要在测试 java.lang.IllegalStateException 中使用 @ContextConfiguration 或 @SpringBootTest(classes=...) Spring Boot 不是自己配置的吗? 我的测试班: @RunWith(SpringRunner.class) @DataJpaTest @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class JpaTest { @Autowired private AccountRepository repository; @After public void clearDb(){ repository.deleteAll(); } @Test public void createAccount(){ long id = 12; Account u = new Account(id,"Tim Viz"); repository.save(u)
  • SpringBoot 2 构建多模块项目
    开篇词 该指南向你展示如何使用 Spring Boot 创建一个多模块项目。该项目将具有一个库 jar 和使用该库的主应用。你还可以使用它来查看如何自行构建库(既不是应用的 jar 文件)。 你将创建的应用 我们将设置一个库 jar,它公开简单的 “Hello, World” 消息服务,然后将该服务包含在使用库作为依赖项的 Web 应用中。 你将需要的工具 大概 15 分钟左右;你最喜欢的文本编辑器或集成开发环境(IDE)JDK 1.8 或更高版本;Gradle 4+ 或 Maven 3.2+你还可以将代码直接导入到 IDE 中: Spring Too Suite (STS)IntelliJ IDEA 如何完成这个指南 像大多数的 Spring 入门指南一样,你可以从头开始并完成每个步骤,也可以绕过你已经熟悉的基本设置步骤。如论哪种方式,你最终都有可以工作的代码。 要从头开始,移步至创建根项目;要跳过基础,执行以下操作: 下载并解压缩该指南将用到的源代码,或借助 Git 来对其进行克隆操作:git clone https://github.com/spring-guides/draft-gs-multi-module.git切换至 draft-gs-multi-module/initial 目录;跳转至该指南的从 Spring Initializr 开始。 待一切就绪后
  • 基于STS的Spring Boot入门-笔记
    Spring Boot入门 1.Spring Boot简介1.1 Spring Boot概述1.2 Spring Boot核心特性 2.Spring Boot环境配置2.1 准备工作2.2 Maven基本配置2.3 STS整合maven配置 3.Spring Boot快速入门3.1 项目创建及结构分析方法一:方法二:方法三、四:方法五: 3.2 项目启动过程分析(了解)3.3 项目业务初步实现及测试第一步:在main/java目录下创建DefaultCache类,交给spring管理第二步:在test/java目录下创建SpringBoot测试类,进行bean的获取和测试,类名DefaultCacheTests第三步:代码运行分析第四步:为对象设计作用域,设置延迟寄阿紫啊,设置生命周期方法(了解)能说说Spring框架管理Bean对象有什么优势吗?(面试) 3.4 项目业务增强实现及测试基于对上面这段话的理解,我们再看看下面这个案例(针对@Autowired描述构造方法时) 4.Spring Boot 小节总结4.1重难点分析4.2问题分析1.空指针异常(NullPointerException)2.依赖注入失败3.找不到对应的Bean对象4.依赖注入失败 1.Spring Boot简介 1.1 Spring Boot概述 现在软件市场已经形成一定的规模,系统架构的复杂度也越来越高
  • SpringBoot整合Grpc实现跨语言RPC通讯
    什么是gRPC gRPC是谷歌开源的基于go语言的一个现代的开源高性能RPC框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,并提供可插拔的支持,以实现负载平衡,跟踪,健康检查和身份验证。它还适用于分布式计算的最后一英里,用于将设备,移动应用程序和浏览器连接到后端服务。 简单的服务定义:使用Protocol Buffers定义您的服务,这是一个功能强大的二进制序列化工具集和语言. 跨语言和平台工作:自动为各种语言和平台的服务生成惯用的客户端和服务器存根,当然单纯的java语言之间也是可以的。 一般主要是Java和Go,PHP,Python之间通讯。 快速启动并扩展:使用单行安装运行时和开发环境,并使用框架每秒扩展到数百万个RPC 双向流媒体和集成的身份验证:基于http/2的传输的双向流和完全集成的可插拔身份验证 官网地址:https://www.grpc.io/ 这是一个可以运行的例子,本文基于此增加了一些代码:https://codenotfound.com/grpc-java-example.html 这个例子使用的jar是grpc-spring-boot-starter@io.github.lognet 这个例子也可以参考:https://github.com/yidongnan/grpc-spring-boot-starter
  • springboot2初期笔记存档
    SpringBoot2 1 springboot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架 。 springboot优点 创建独立Spring应用内嵌web服务器自动starter依赖,简化构建配置自动配置Spring以及第三方功能提供生产级别的监控、健康检查及外部化配置无代码生成、无需编写XML springboot缺点 人称版本帝,迭代快,需要时刻关注变化封装太深,内部原理复杂,不容易精通 官方文档 springBoot2.4.4开发手册 什么是微服务? 微服务是一种架构风格一个应用拆分为一组小型服务每个服务运行在自己的进程内,也就是可独立部署和升级服务之间使用轻量级HTTP交互服务围绕业务功能拆分可以由全自动部署机制独立部署去中心化,服务自治。服务可以使用不同的语言、不同的存储技术 微服务的痛点 运维要求高:
  • Junit STS - 未发现测试运行程序“Junit 5”的测试(Junit STS - No test found with test runner 'Junit 5)
    问题 我已经从 https://howtodoinjava.com/spring-batch/java-config-multiple-steps/' 复制了 Spring Batch 程序。 我从 https://docs.spring.io/spring-batch/docs/current/reference/html/testing.html 创建了以下 JUnit 测试用例: package com.example.demo; import org.springframework.batch.core.JobExecution; import org.springframework.batch.test.JobLauncherTestUtils; import org.springframework.batch.test.context.SpringBatchTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.test.context.ContextConfiguration; import
  • springboot学习笔记:引入springboot
    环境 MacBook Pro java:1.8 gradle:5.5.1 IntelliJ IDEA : 2019.2 前言 翻译官网 用springboot来构建一个应用程序 用gradle来构建 首先,我们要设置一个基本脚本。在使用Spring构建应用程序时,可以使用任何喜欢的构建系统,这里是两个常用构建工具的地址:gradle和maven; 如果这两个构建工具都不熟悉的话,可以参考: Building Java Projects with Gradle Building Java Projects with Maven. 创建目录结构 在我们的项目目录中,创建以下子目录结构; 例如:mkdir -p src/main/java/hellop (Linux) |___ src |___main |___java |___hello 创建gradle构建文件 github上的地址:initial Gradle build file. 文件名:build.gradle buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:2.2.1.RELEASE") } } apply plugin:
  • SpringBoot+JPA+mysql实现简单的增删改查(一)---Spring Boot入门
    文章目录 一、环境搭建二、配置及分析 一、环境搭建 SpringBoot项目搭建 访问 http://start.spring.io/选择构建工具 Maven Project、Java、Spring Boot版本以及其它的信息。设置好之后,点击GENERATE下载项目压缩包。 我使用的是Eclipse,可以File->Import->Existing Maven Project->next->选择解压后的文件夹->Finsh,成功导入到自己的工程中。导入之后可能会有红叉叉,pom.xml文件第一行出现Unknown错误,这个可能是maven插件和eclispe不兼容的原因(ps:也可以忽略,不影响整体运行) 这样Spring Boot的环境就搭建好啦,是不是很简单。 二、配置及分析 如上图所示:Spring boot的基础结构有三个文件目录: src/main/java:程序开发以及主程序入口src/main/resources:配置文件src/test/java:测试程序 1)我们可以看到在src/main/java下有一个SchoolApplication.java文件,这是程序入口类SchoolApplication。在Springboot项目中我们可以通过main方法启动项目,在需要启动的主类中我们需要加入@SpringBootApplication这个注解
  • Spring源码下载编译阅读
    1.前言: 经过多次拉取Spring源码编译失败经历,一下抓取配置编译过程各个软件版本可能有影响因此先做以记录(时间不同也会导致版本出入要注意) Idea:2020.1.1(参考文献博主2019.3.3版本也可) 插件:maven(3.6.3)(未用到)Gradle (4.10.3) Kotlin(idea内装) JDK:原机安装1.8版本 需要11版本(后续会说明JDK1.8问题) 注:流程可能较长,源码拉取编译不易,耐心阅读 2.流程 2.1抓取Spring源码 GITHUB网址:https://github.com/spring-projects/spring-framework 注意笔者:2020.12.9抓取版本 (v5.3.3-SNAPSHOT)版本可能会导致后期配置时的不适,同时码云上也有Springframework版本 暂未以此测试过 2.2gradle下载及安装 获取gradle-4.10.3,地址为:https://services.gradle.org/distributions/ ,这里我们只选择安装文件即可,下载完毕后解压到相应目录即可(建议全英文目录) 直接访问该网址下载可能较慢,可搭”梯子“ 配置环境变量同java: 建立系统变量GRADLE_HOME 值为解压目录中bin文件夹的上一级目录(bin在这个目录下) 编辑PATH系统变量
  • Java学习笔记-全栈-web开发-17-maven
    maven 1. 简介2. maven仓库3. 创建maven工程4. 坐标5. 常用命令6. 依赖管理6.1 依赖范围 -- scope6.2 依赖传递6.3 依赖冲突(常见)6.4 可选依赖(是否不传递依赖)6.5 排除依赖(常用) 7. maven生命周期(理解)7.1 Clean生命周期:清理项目7.2 Default生命周期:构造项目7.3 Sit生命周期:生成项目站点(了解) 8. maven 插件plugins9. 继承9.1 创建父工程9.2 创建子工程9.3 父工程统一管理依赖9.4 父工程提取版本号9.5 springboot中的父工程(了解) 10. 项目聚合(重要)10.1 创建聚合项目(Springboot)10.1.1 创建父工程10.1.2 创建子工程 10.2 模块引用10.3 模块打包10.4 推荐阅读 11. maven仓库更改IDEA默认仓库以及镜像 1. 简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 Maven最常见的用于就是用来导包。 使用eclipse或其他编辑器的,请自行百度下载按照方法,博主使用的IDEA自带maven 2. maven仓库