Run tests (including doc tests) in cargo run -p ci command (#3849)

# Objective

- Using the `cargo run -p ci` command locally is unreliable, as it does not run tests.
- This is particularly unreliable for doc tests, as they are not run as part of `cargo test`.

## Solution

- add more steps to the appropriate Rust file.

## Known Problems

This duplicates work done to run tests when run on Github. @mockersf, suggestions on if we care / how we can mitigate it?
This commit is contained in:
Alice Cecile 2022-02-03 04:25:45 +00:00
parent 19bd6b9c32
commit c44f8b2b68
2 changed files with 17 additions and 1 deletions

View file

@ -68,7 +68,7 @@ jobs:
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
- name: CI job
# See tools/ci/src/main.rs for the commands this runs
run: cargo run -p ci
run: cargo run -p ci -- nonlocal
check-benches:
runs-on: ubuntu-latest

View file

@ -26,4 +26,20 @@ fn main() {
.run()
.expect("Compiler errors of the ECS compile fail tests seem to be different than expected! Check locally and compare rust versions.");
}
// These tests are already run on the CI
// Using a double-negative here allows end-users to have a nicer experience
// as we can pass in the extra argument to the CI script
let args: Vec<String> = std::env::args().collect();
if args.get(1) != Some(&"nonlocal".to_string()) {
// Run tests
cmd!("cargo test --workspace")
.run()
.expect("Please fix failing tests in output above.");
// Run doc tests: these are ignored by `cargo test`
cmd!("cargo test --doc --workspace")
.run()
.expect("Please fix failing doc-tests in output above.");
}
}