--- ---
Skip to content

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を参照してください(なお、この記事の筆者が書いたものではありません)。

kennytm/cargo-kcov#48

一応、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)

執筆

phenylshimaのプロフィール画像
phenylshima phenylshima on GitHub

そのへんの大学生です.プロフィールについてはGitHubを見ていただければ…

最近よく使う言語はRustとTypeScriptです.Rustは書いていてたのしいので,よく採用します.