【发布时间】:2019-01-30 23:33:13
【问题描述】:
有一个包含 Capybara、Selenium、Allure 的复杂测试套件,但都被滥用了:
- 它会自行启动和退出 Chrome,而不是将这项工作留给 Capybara
- 之前和之后的钩子放错了地方,造成的影响,例如,当你这样做时会填充远程数据库
rspec --dry-run - Allure 报告 gem 几乎被遗弃了,我相信这里的集成也并非没有错误做法
现在当我运行测试时,它们有时会挂起,所以我按 ^C 但它们不会停止:
RSpec is shutting down and will print the summary report... Interrupt again to force quit.
无论我等待多长时间,甚至手动关闭浏览器,它都不会停止。
当我再次按^C 时,它什么也没有打印——没有回溯。
我怎么知道它挂在哪里?我如何随时获得它的回溯?
【问题讨论】:
-
使用
gdb钩入进程,看看它在处理什么? -
朱莉娅·埃文斯对此有一篇非常好的帖子 - jvns.ca/blog/2016/06/12/a-weird-system-call-process-vm-readv
-
谢谢!
gdb ```which ruby``` --pid=31816和call rb_backtrace()命令对我有用。 (idk 如何在 SO markdown 中格式化代码内的反引号)