求教一个 IDEA 执行测试用例的问题

2022-09-16 11:34:58 +08:00
 lslvxy

一个项目,启动要 5min+时间,修改完 case 执行一下也需要 5min+,太浪费时间了

有没有什么办法能执行 case 的时候不用重新 spring 容器

1037 次点击
所在节点    程序员
3 条回复
spike2017
2022-09-16 14:24:21 +08:00
所有 case 写在一个类
freeminder
2022-09-16 14:41:22 +08:00
哈哈哈这个我知道,最近刚弄完
1. 写一个 testcase ,包一层 for 循环 N 次, 调用真正的 doTest 方法,在 doTest 下断点调试
2. 在需要修改的文件上改动代码,改完之后右键 recompile ,会弹框提示是不是 reload ,在这个时候放开断点会执行新的代码;不同版本不一样,有个 debugger 热键 compile and reload
一些备注:
1. 步骤一的循环 N 次也可以配置 run/debug 参数里面 repeat 多少次,但是有个问题是停止 debug 要点两下,不然会 repeat 完
2. idea 的 reload 文档 https://www.jetbrains.com/help/idea/altering-the-program-s-execution-flow.html#reload_classes
3. 文档里面有 HotSwap limitations 注意看,部分修改是不可 reload 的,可以调试的时候避开类似的修改,最后全写完再重构一下
4. 步骤 3 的限制可以通过替换 vm 实现 DCEVM

看你想折腾什么样子了,这个直接在 vm+debug 上改感觉和框架无关很爽
lslvxy
2022-09-16 16:17:59 +08:00
@freeminder 这方法不错,我试一下

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

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

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

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

© 2021 V2EX