SpringBoot热部署和单元测试

2021-07-23 10:29:39 浏览数 (1)

SpringBoot热部署和单元测试

前言

我们在使用SpringBoot开发的过程中有两个非常实用的方式可以帮助我们提高开发的效率,分别是SpringBoot热部署与单元测试,本篇博客将简单地对这两种方式的使用,做一下简单地介绍。

正文

SpringBoot 热部署

SpringBoot借助spring-boot-devtools,可以在改变程序代码的时候,自动实现项目的重新启动和部署,大大提高了开发调试的速率。

IDEA修改2个参数:

  • CTRL SHIFT A --> 查找make project automatically --> 选中
  • Ctrl Shift A,一样找到complier.automake.allow.when.app.running,点击勾选即可。

浏览器Chrome ,按F12 关闭缓存

在pom.xml中添加以下代码

代码语言:javascript复制
    <!--SpringBoot 热部署模块-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
      <scope>true</scope>
    </dependency>

    <!--在构建模块也要添加热部署模块-->
    <build>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <configuration>
            <fork>true</fork>
          </configuration>
        </plugin>

      </plugins>
    </build>

完成以上配置后我们在修改代码后,IDEA将自己帮助我们重新打包运行项目。

单元测试

方式一:借助启动类启动SpringBoot,加载默认application.properties

代码语言:javascript复制
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = App.class)
public class AppForTest {
   
   @Test
    public void ceshi(){
   
       
   }
}

方式二:@ContextConfiguration指定配置文件

代码语言:javascript复制
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:/application-test.xml")
public class AppForTest {
   
   @Test
    public void ceshi(){
   
       
   }
}

使用单元测试的时候要注意在pom.xml添加以下内容

  • 打包时将test部分排除
  • 配置正式与测试的资源文件的路径
代码语言:javascript复制
<build>
  <finalName>${
   project.artifactId}-${
   project.version}</finalName>
  <plugins>

    <!--编译时排除测试类-->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <includes>
          <include>**/Test.java</include>
        </includes>
        <excludes>
          <exclude>**/TestCase.java</exclude>
        </excludes>
        <skip>false</skip>
        <testFailureIgnore>false</testFailureIgnore>
      </configuration>
    </plugin>
  </plugins>


  <!--资源文件-->
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*</include> </includes> </resource> </resources> <!--单元测试时引用src/main/resources下的资源文件--> <testResources> <testResource> <directory>src/test/resources</directory> </testResource> <!--<testResource>--> <!--<directory>src/main/resources</directory>--> <!--</testResource>--> </testResources> </build> 

0 人点赞