Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/relrin/cargo-test-all

Cargo extension for running tests of the used dependencies
https://github.com/relrin/cargo-test-all

cargo cargo-commands rust testing

Last synced: 30 days ago
JSON representation

Cargo extension for running tests of the used dependencies

Awesome Lists containing this project

README

        

# cargo-test-all
Cargo extension for running tests of the used dependencies

# Features
- Running tests for each dependency, specified in Cargo.toml
- Can be specified only the certain crates for testing
- Have an opportunity to run multiple threads/workers for building and testing crates

# Installation
For installation this executable use the following command in your terminal or shell:
- Install the `cargo-clone`:
```
cargo install cargo-clone
```
- Install this extension itself:
```
cargo install cargo-test-all
```

# Usage
Use the `cargo test-all` call at the toplevel of any Cargo project.

```
Cargo extension for running tests of the used dependencies

USAGE:
cargo-test-all [OPTIONS]

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--only List of certain crates for testing, separated by comma.
-t, --threads An amount of concurrent threads for testing crates. [default: 1]
```

# How it works
Because the Cargo currently does not provide (as far as I aware) any way to install the dependency with its own tests, it works in the following way:
1) From the given output determines which crates needs to test.
2) Creates the `target/testing/deps` directory that will be used for storing crates downloaded from Crates.io or with Git.
3) For each crate:
1) Download crate from the default storage or via Git (if it isn't local).
2) Move to the folder with code
3) Build the sources and run tests as the task, executed by the worker
4) Results of the finished task stored in the main thread and print them out when everything is done.