1
xiaoxinshiwo 2018-10-29 17:42:03 +08:00
不是使用 maven 命令吗?
|
2
vimsucks 2018-10-29 17:43:05 +08:00 via Android
不是单测跑过了才打包的吗?
|
3
x66 2018-10-29 17:45:23 +08:00 via iPhone
单元测试过了才打包,打好包了就不需要再执行单元测试了
|
4
xhinliang 2018-10-29 17:49:06 +08:00
正解
|
5
Damon4V OP @x66
@vimsucks @xiaoxinshiwo 有个需求是这样的:之前做了个定时任务,任务处理一些东西,然后,测试反馈这样很麻烦,需要提供一个 shell 脚本去主动执行任务的处理,各位有什么好的方法,除了修改时间和暴露接口 |
7
xiaoxinshiwo 2018-10-29 17:53:50 +08:00
@Damon4V #5 首先 springboot 打包成可执行的 jar 会吧,在入口 main 方法中调用需要定时执行的业务就行。然后 shell 中使用 linux 的 crontab 执行定时任务即可
|
8
Damon4V OP @xiaoxinshiwo 现在项目是分成好几个 jar 包的,service 层单独一个,dao 层单独,类似这样,这样在其中一个 jar 包里的 main 方法中去调用 service 层接口,会找不到的
|
9
xhinliang 2018-10-29 18:58:29 +08:00
你这个不是单元测试吧?用 ApplicationRunner 来做行不行?
或者说你这个是希望主动触发的? |
10
xhinliang 2018-10-29 19:01:02 +08:00
|
12
xiaoxinshiwo 2018-10-30 09:31:19 +08:00
@Damon4V #8 java -jar 可以指定执行的 main 方法,不知道你讲的找不到啥意思
|
13
Damon4V OP @xiaoxinshiwo 那 main 方法里怎么去获取 Bean,注解方式的加载的 Bean
|
14
xiaoxinshiwo 2018-10-30 09:38:27 +08:00
使用 springContext 啊,直接 getBean
|
15
xiaoxinshiwo 2018-10-30 09:38:41 +08:00
@Damon4V #13 使用 springContext 啊,直接 getBean
|
16
Damon4V OP @xiaoxinshiwo 取回来是 Null 的
|
17
Damon4V OP @xiaoxinshiwo <dependency>
<groupId>com.***.***</groupId> <artifactId>XXXXX</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> 这个 bean 是在 XXX 项目里的,这样不能找到吧? |
18
Damon4V OP @xiaoxinshiwo XXX 是自己的代码,只是分开的
|
19
xiaoxinshiwo 2018-10-30 09:44:44 +08:00
@Damon4V #18 那你在 main 方法里面初始化 spring 容器啊
|
20
xiaoxinshiwo 2018-10-30 09:45:38 +08:00
@Damon4V #16 不然你把 @springBootApplication 放在你自己的 main 里面也能初始化 spring 啊
|
21
Damon4V OP @xiaoxinshiwo @springBootApplication 是在 dependency 里面,spring boot 结构的也能手动初始化 spring 容器???
|
22
xiaoxinshiwo 2018-10-30 10:03:25 +08:00
@Damon4V #21 跟 Application.java 一样啊。再不济你使用执行时间可配置的定时任务不行吗
|
23
fairyto2 2018-10-30 10:15:39 +08:00 via iPhone 1
写个 controller,用 curl 执行不就可以了?
|
24
paragon 2018-10-30 10:23:00 +08:00
然而单元测试并不会被打包
|
25
ixiaohei 2018-10-30 10:24:09 +08:00
单元测试是 mvn 的 test 周期执行的。你都打成 jar 了(已经执行 package 周期),之后的测试应该是功能和集成测试。
另外你按照 maven 约定写测试代码(在 src/test/java ),不要跳过 test 周期就会跑单测。(单测写的越多花费时间越长,所以建议上 ci ) |
26
liiihhhh 2018-10-30 10:25:35 +08:00
|
27
xiaoxinshiwo 2018-10-30 10:25:43 +08:00
@fairyto2 #23 这个思路也是挺不错
|
29
vjnjc 2018-10-30 14:26:06 +08:00
赞同#25 的方法,其他的还叫单元测试么。。。
|
30
luozic 2018-10-30 17:03:07 +08:00 via iPhone
集成测试就叫集成测试。
|
31
jack80342 2018-11-11 15:14:08 +08:00
这是我翻译的 Spring Boot 2.0 的官方文档,可能对你有帮助。https://github.com/jack80342/Spring-Boot-Reference-Guide
|