Spring Boot 的单元测试

2018-10-29 17:32:42 +08:00
 Damon4V
Spring Boot 的单元测试,打包成 jar/war 后,怎么去使用 shell 启动里面的单元测试;
4561 次点击
所在节点    Java
31 条回复
xiaoxinshiwo
2018-10-29 17:42:03 +08:00
不是使用 maven 命令吗?
vimsucks
2018-10-29 17:43:05 +08:00
不是单测跑过了才打包的吗?
x66
2018-10-29 17:45:23 +08:00
单元测试过了才打包,打好包了就不需要再执行单元测试了
xhinliang
2018-10-29 17:49:06 +08:00
正解
Damon4V
2018-10-29 17:50:48 +08:00
@x66
@vimsucks
@xiaoxinshiwo

有个需求是这样的:之前做了个定时任务,任务处理一些东西,然后,测试反馈这样很麻烦,需要提供一个 shell 脚本去主动执行任务的处理,各位有什么好的方法,除了修改时间和暴露接口
Damon4V
2018-10-29 17:52:48 +08:00
@xhinliang 有什么好的方法吗? 项目是使用 Spring Boot 架构的
xiaoxinshiwo
2018-10-29 17:53:50 +08:00
@Damon4V #5 首先 springboot 打包成可执行的 jar 会吧,在入口 main 方法中调用需要定时执行的业务就行。然后 shell 中使用 linux 的 crontab 执行定时任务即可
Damon4V
2018-10-29 18:06:23 +08:00
@xiaoxinshiwo 现在项目是分成好几个 jar 包的,service 层单独一个,dao 层单独,类似这样,这样在其中一个 jar 包里的 main 方法中去调用 service 层接口,会找不到的
xhinliang
2018-10-29 18:58:29 +08:00
你这个不是单元测试吧?用 ApplicationRunner 来做行不行?
或者说你这个是希望主动触发的?
xhinliang
2018-10-29 19:01:02 +08:00
Damon4V
2018-10-30 09:27:04 +08:00
@xhinliang 定时触发是已经做了的,现在是要写个脚本什么的去触发执行 main 函数
xiaoxinshiwo
2018-10-30 09:31:19 +08:00
@Damon4V #8 java -jar 可以指定执行的 main 方法,不知道你讲的找不到啥意思
Damon4V
2018-10-30 09:34:07 +08:00
@xiaoxinshiwo 那 main 方法里怎么去获取 Bean,注解方式的加载的 Bean
xiaoxinshiwo
2018-10-30 09:38:27 +08:00
使用 springContext 啊,直接 getBean
xiaoxinshiwo
2018-10-30 09:38:41 +08:00
@Damon4V #13 使用 springContext 啊,直接 getBean
Damon4V
2018-10-30 09:40:06 +08:00
@xiaoxinshiwo 取回来是 Null 的
Damon4V
2018-10-30 09:42:05 +08:00
@xiaoxinshiwo <dependency>
<groupId>com.***.***</groupId>
<artifactId>XXXXX</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

这个 bean 是在 XXX 项目里的,这样不能找到吧?
Damon4V
2018-10-30 09:42:39 +08:00
@xiaoxinshiwo XXX 是自己的代码,只是分开的
xiaoxinshiwo
2018-10-30 09:44:44 +08:00
@Damon4V #18 那你在 main 方法里面初始化 spring 容器啊
xiaoxinshiwo
2018-10-30 09:45:38 +08:00
@Damon4V #16 不然你把 @springBootApplication 放在你自己的 main 里面也能初始化 spring 啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/502261

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX