Rid*_*del 6 windows testing debugging rust visual-studio-code
我正在使用带有Rust和Visual Studio工具链的Windows上的VS Code开发针对Codingame问题的代码。
我找到了许多指南来解释如何调试由生成的可执行文件cargo build,最好是使用Visual Studio Code和MSVC Debugger在Windows上调试Debug Rust。
但是,当我遇到问题时,我倾向于编写单元测试(我已经用Java,JavaScript,Ruby等来完成了),然后进行调试。不幸的是,我在Rust中找不到任何方法可以做到这一点。如何配置环境以调试测试?
我不是在谈论println!在测试中添加语句,因为我已经知道该怎么做。我也不在谈论添加新的断言,因为这些断言驻留在测试中,而不在测试的代码中。
我想要在测试调用的代码上使用VS代码调试器。
She*_*ter 14
Rust 单元测试被编译为单独的二进制文件,这意味着您调试它们与任何其他二进制文件完全相同。编译后,它们位于./target/debug/$name-$hash.
这是 VS Code 配置文件的修改版本,允许我调试单元测试。
{
"type": "shell",
"label": "cargo test build",
"command": "cargo",
"args": [
"test", "--no-run"
],
"problemMatcher": [
"$rustc"
]
}
Run Code Online (Sandbox Code Playgroud)
{
"name": "Run Test Debugger",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/target/debug/buggin-70708b3916187eeb.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"preLaunchTask": "cargo test build",
}
Run Code Online (Sandbox Code Playgroud)
构建你的测试:
{
"type": "shell",
"label": "cargo test build",
"command": "cargo",
"args": [
"test", "--no-run"
],
"problemMatcher": [
"$rustc"
]
}
Run Code Online (Sandbox Code Playgroud)
在 Windbg 中打开构建的可执行文件并打开源文件。
找到散列是最烦人的方面。我所知道的最好的解决方案是编写一个小脚本来构建测试,然后根据最新的测试找到可执行文件。我的 Powershell 技能不足以完成任务,也不知道如何将其与 VS Code 或 Windbg 直接集成。
Cargo 有一些未解决的问题可以帮助识别文件:
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |