我正在尝试遵循此指南,以便能够覆盖 Rust 项目的源代码。
我做了以下事情:
cargo install grcov
rustup component add llvm-tools-preview
set RUSTFLAGS="-Zinstrument-coverage"
cargo build
LLVM_PROFILE_FILE
变量设置为:"test-%p-%m.profraw"
set LLVM_PROFILE_FILE="test-%p-%m.profraw"
cargo test
但是没有出现.profraw文件,我只有以下内容:
我是否缺少一些额外的配置?
这是我的环境信息: 货物 1.57.0 (b2e52d7ca 2021-10-21) 发布:1.57.0 主机:x86_64-pc-windows-msvc 操作系统:Windows 10.0.18363(Windows 10 Enterprise)[64位]
预先感谢您的帮助。
我在 Windows 上的 Rust 1.61 nightly 中看到了类似的行为。 我注意到警告消息指出无法写入
""test-%p-%m.profraw""
。 就我而言,解决方法是更改设置 LLVM_PROFILE_FILE
环境变量的方式。 如果我将其设置为:
set LLVM_PROFILE_FILE=test-%p-%m.profraw
不带引号并重新运行我的测试,会生成 .profraw 文件。
您的里程可能会有所不同。 我对
RUSTFLAGS
环境变量也有同样的问题,我必须删除引号才能编译。
我在 1.61 中遇到的另一件值得注意的事情是警告称
-Zinstrument-coverage
已被弃用,取而代之的是 -Cinstrument-coverage
。
我在Windows上尝试了ardouglas的答案,但没有成功。但以下内容在 PowerShell 中有效:
$env:RUSTFLAGS="-Cinstrument-coverage"
cargo build
$env:LLVM_PROFILE="test-%p-%m.profraw"
cargo test
谢天谢地,它成功了。 我以为我要疯了。事实证明我只是对 PowerShell 理解不够好。