xd009642/tarpaulin

`-p package_name` not working as it tests all packages

gitmalong opened this issue · 2 comments

Hi!

I tried the following commands to make tarpaulin only test a certain package of my workspace.

  • cargo tarpaulin --skip-clean -p myapp-import --workspace
  • cargo tarpaulin --skip-clean -p myapp-import
  • cd import && cargo tarpaulin --skip-clean -p myapp-import --exclude-files ../*

Output:

user@Air-von-user myapp % cargo tarpaulin --skip-clean -p myapp-import --workspace
Jan 07 13:46:07.314  INFO cargo_tarpaulin::config: Creating config
Jan 07 13:46:07.803  INFO cargo_tarpaulin: Running Tarpaulin
Jan 07 13:46:07.803  INFO cargo_tarpaulin: Building project
warning: /Users/user/Documents/Code/myapp/calc/Cargo.toml: unused manifest key: dependencies.serde_json.ref
    Finished test [unoptimized + debuginfo] target(s) in 0.31s
Jan 07 13:46:14.258  INFO cargo_tarpaulin::process_handling: running /Users/user/Documents/Code/myapp/target/debug/deps/myapp_calc-020fc14a34535aa8
Jan 07 13:46:14.258  INFO cargo_tarpaulin::process_handling: Setting LLVM_PROFILE_FILE

running 21 tests
test calc::test_parse_dec ... ok
...

Workspace Cargo.toml

[workspace]
members = [
    "calc",
    "storage",
    "import",
    "wasm_app"
]
exclude = ["wasm_app"]
resolver = "2"

import/Cargo.toml

[package]
name = "myapp-import"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

Versions:

cargo-tarpaulin-tarpaulin 0.27.2
macOS 14.2.1 (23C71)

i think maybe try

cargo tarpaulin --skip-clean -- -p myapp-import

So I've tested out cargo tarpaulin --skip-clean -p myapp-import with a project with your configuration and it works fine. Maybe check for something like a tarpaulin.config that may interfere or rerun and report back if it's still an issue.

--workspace will always cause all tests in a workspace to be ran so you don't want that! Also, if your workspace crate uses other crates in the workspace as dependencies you may see them pop up in results but it still shouldn't run their tests.

cargo tarpaulin --skip-clean -p myapp-import
Apr 27 12:02:05.639  INFO cargo_tarpaulin::config: Creating config
Apr 27 12:02:05.656  INFO cargo_tarpaulin: Running Tarpaulin
Apr 27 12:02:05.657  INFO cargo_tarpaulin: Building project
    Finished test [unoptimized + debuginfo] target(s) in 0.00s
Apr 27 12:02:05.714  INFO cargo_tarpaulin::process_handling::linux: Launching test
Apr 27 12:02:05.715  INFO cargo_tarpaulin::process_handling: running /home/daniel/personal/meta/dummy/target/debug/deps/myapp_import-50e306123074ea22

running 1 test
test tests::it_works ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

Apr 27 12:02:06.401  INFO cargo_tarpaulin::report: Coverage Results:
|| Uncovered Lines:
|| Tested/Total Lines:
|| import/src/lib.rs: 2/2 +0.00%
|| 
100.00% coverage, 2/2 lines covered, +0.00% change in coverage