java - spring boot 测试及打包

添加测试

写单元测试类能降低出 bug 的概率,只要单个测试中通过,整体运行起来有七八成的概率是没问题的。再者不能写出单元测试类的代码,说明耦合度还是比较高的,需要优化。

    1. 先确保是否有添加依赖:

    org.springframework.boot
    spring-boot-starter-test
    test

    1. 添加测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = EndorseApplication.class)
@WebAppConfiguration
public class EndorseApplicationTests {
    private MockMvc mockMvc;

    @Autowired
    private WebApplicationContext webApplicationContext;


    private MediaType contentType = new MediaType(MediaType.APPLICATION_JSON.getType(),
            MediaType.APPLICATION_JSON.getSubtype(),
            Charset.forName("utf8"));

    @Before
    public void setup() throws Exception {
        this.mockMvc = webAppContextSetup(webApplicationContext).build();
    }

    @Test
    public void bannerControllerTest() throws Exception {
        ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.get("/banner")
                .contentType(contentType))
                .andExpect(MockMvcResultMatchers.status().isOk());

        MvcResult mvcResult = resultActions.andReturn();
        byte[] contentAsByteArray = mvcResult.getResponse().getContentAsByteArray();
        System.out.println(new String(contentAsByteArray));
    }

}
    1. 查看测试结果
      在需要测试的方法名上「右键 --> run 'method'」
      会在 run 窗口中出现测试结果:
java - spring boot 测试及打包_第1张图片
测试结果.png

打包

打包:在pom.xml同级目录下进行如下操作

   1 mvn clean package
   2 cd .\target\
   3 java -jar .\endorse-0.0.1-SNAPSHOT.jar

打出的jar包可以直接在阿里云上运行,注意事项:

  • 1、版本号是否相同,在pom.xml中定的java版本号与阿里云上的版本号不一致会报异常
  • 2、端口号是否冲突,因为是jar包直接可以运行且默认是8080端口,若阿里云上已经启动了tomcat会有端口号冲突问题。
  • 3、端口是否开放,在我的情况中,修改了jar包中的端口号,而阿里云的安全组中没有开放导致访问不到。

端口号是直接在 application.properties 中修改即可

server.port=9090

上面的方式当关闭了命令号窗口,服务就会停止,为了让其能在后台运行,可以(linux下):

nohup java -jar endorse-0.0.1-SNAPSHOT.jar &

若想要在停止该服务(找到该服务,kill掉):

 ps aux | grep endorse | xargs kill -9

参考:
http://www.jianshu.com/p/1cd37198c7ee

你可能感兴趣的:(java - spring boot 测试及打包)