gpt4 book ai didi

windows - 如何在 Windows 上调试 Rust 单元测试?

转载 作者:可可西里 更新时间:2023-11-01 13:48:31 24 4
gpt4 key购买 nike

我正在使用 Rust 和 Visual Studio 工具链在 Windows 上使用 VS Code 为 Codingame 问题开发代码。

我找到了多个指南来解释如何调试 cargo build 生成的可执行文件,最好的是 Debug Rust on Windows with Visual Studio Code and the MSVC Debugger .

但是,当我遇到问题时,我倾向于编写单元测试(我用 Java、JavaScript、Ruby 等编写过),然后进行调试。不幸的是,我在 Rust 中找不到任何方法来做到这一点。如何配置我的环境来调试我的测试?

我不是在谈论在我的测试中添加 println! 语句,因为我已经知道如何做到这一点。我也不是在谈论添加新的断言,因为那些驻留在测试中,而不是在测试代码中。

我想要的是在我的测试调用的代码上使用 VS 代码调试器。

最佳答案

Rust 单元测试被编译为单独的二进制文件,这意味着您调试它们与任何其他二进制文件完全相同。编译后,它们位于 ./target/debug/$name-$hash

Visual Studio Code

这是允许我调试单元测试的 VS 代码配置文件的修改版本。

任务.json

{
"type": "shell",
"label": "cargo test build",
"command": "cargo",
"args": [
"test", "--no-run"
],
"problemMatcher": [
"$rustc"
]
}

启动.json

{
"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",
}

工作

VS Code debugger running on a test

云数据库

构建你的测试:

cargo test --no-run

在 Windbg 中打开构建的可执行文件并打开源文件。

Windbg on Rust test


查找哈希是最烦人的方面。我知道的最好的解决方案是编写一个小脚本来构建测试,然后找到最新的测试可执行文件。我的 Powershell 技能不足以完成这项任务,我也不知道如何将其直接与 VS Code 或 Windbg 集成。

Cargo 有 Unresolved 问题来帮助识别文件:

关于windows - 如何在 Windows 上调试 Rust 单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50707118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com