cargo-kcovでcannot find test targetsと出てテストが実行できない
cargo-kcovで--no-clean-rebuild
を有効にしてテストを実行しようとしたところ、
$ cargo kcov --no-clean-rebuild
error: cannot find test targets
note: try a clean rebuild first:
$ cargo clean &&
RUSTFLAGS="-C link-dead-code" cargo test --no-run &&
cargo kcov --no-clean-rebuild
というエラーで実行できませんでした(--no-clean-rebuild
なしなら実行できました)。
結論から言うと、Rust 1.44以降targetディレクトリ以下の構造が変わり、cargo-kcovがまだ対応していないということのようです。 2023年1月14日現在でも修正されていませんでした。詳しくは次のissueを参照してください(なお、この記事の筆者が書いたものではありません)。
一応、target/debug/deps/[project name]-[hash]
という実行可能ファイルをtarget/debug
以下にコピーすればエラーは出なくなりましたが、レポートに表示されるファイルが減ってしまいました。
現状では、--no-clean-rebuild
なしで実行するのがいいかもしれません。
環境
環境は次の通りです。
$ rustup show
Default host: x86_64-unknown-linux-gnu
rustup home: /home/[省略]/.rustup
stable-x86_64-unknown-linux-gnu (default)
rustc 1.65.0 (897e37553 2022-11-02)