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
部分排除 - 配置正式与测试的资源文件的路径
<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>