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中添加以下代码
<!--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
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = App.class)
public class AppForTest {
@Test
public void ceshi(){
}
}
方式二:@ContextConfiguration指定配置文件
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:/application-test.xml")
public class AppForTest {
@Test
public void ceshi(){
}
}
使用单元测试的时候要注意在pom.xml添加以下内容
- 打包时将
test部分排除 - 配置正式与测试的资源文件的路径
<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>