交互式 NixOS 测试

主要观点:提供在 NixOS 中像在其他测试框架中一样交互式运行测试的快速指南,包括在testScript中插入breakpoint()、构建并运行测试驱动程序等步骤,还可通过NODE.shell_interact()在启动的节点上进入交互式 shell,结束调试后可运行continue或按 Ctrl-d 取消测试运行。
关键信息:

  • testScript中插入breakpoint()以在期望处进行交互。
  • 用实际测试名替换TEST后运行"$(nix-build -A nixosTests.TEST.driver)/bin/nixos-test-driver"
  • 进入交互式 Python shell 后可运行 Python 命令,终端无自动补全但支持?命令发现。
  • 机器日志在提示出现后仍会打印到终端,可按 Enter 重新绘制提示,未到达提示时会显示空行。
  • 可通过NODE.shell_interact()在节点上进入交互式 shell,结束后按 Ctrl-d 回到 Python 调试器。
    重要细节:
  • 示例会话中,在 SSH 审计测试中添加断点、运行测试、等待输出、按 Enter 重绘提示、进入服务器 VM 的 Bash 并验证、返回调试器、再次按 Ctrl-d 结束调试、删除断点等步骤。
  • 测试中交互性出现奇怪问题,如退出 Bash 后出现新提示符、输入不显示等,可能是信号处理损坏,要小心使用 Ctrl-c/Ctrl-d,如有问题可在回到原生 shell 后运行reset,已报告相关问题。
  • 提供了相关参考资料的链接,如在参考中交互式运行测试如何交互式执行 NixOS 测试进行调试
阅读 13
0 条评论