![]() | 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 ![]() 写个 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 |