Expand description
test_with
provides env, file, path, http, https,
icmp, tcp, root, group, user, mem, swap,
cpu_core, phy_core, executable macros to help you run test case only
with the condition is fulfilled. If the #[test]
is absent for the test case, #[test_with]
will add it to the test case automatically.
This crate help you easier make integrating test case and has a good cargo summary on CI server, and will not affect on your binary output when you dependent it as dev-dependency as following.
[dev-dependencies]
test-with = "*"
All features will be opt-in default feature, so this crate will be easier to use, if you using a CI server with really limitation resource and want this crate as slim as possible, you can select the feature you want as following.
[dev-dependencies]
test-with = { version = "*", default-features = false, features = ["net"] }
The solution to have a real runtime condition check, we need to put the test as normal function
as an example, then use cargo run --example
The test-with
need be included as normal dependency with runtime
feature.
And also include the libtest-with
with corresponding features in Cargo.toml
runner and module are for the basic skeleton of the test runner.
runtime_env, runtime_no_env, runtime_file, runtime_path,
runtime_http, runtime_https, runtime_icmp, runtime_tcp,
runtime_root, runtime_group, runtime_user, runtime_mem,
runtime_free_mem, runtime_available_mem, runtime_swap,
runtime_free_swap, [macro@runtime_available_swap], runtime_cpu_core,
[macro@runtime_phy_core], runtime_executable and runtime_ignore_if are
used to transform a normal function to a
testcase.
[dependencies]
test-with = { version = "*", default-features = false, features = ["runtime"] }
libtest-with = { version = "0.6.1-6", features = ["net", "resource", "user", "executable"] }
// write as example in examples/*rs
test_with::runner!(env);
#[test_with::module]
mod env {
#[test_with::runtime_env(PWD)]
fn test_works() {
assert!(true);
}
}
Macros§
- Provide a test runner and test on each module
Attribute Macros§
- Run test case when cpu core enough
- Run test case when the environment variable is set.
- Run test case when the executables exist.
- Run test case when the file exist.
- Run test case when runner in group
- Run test case when the http service exist.
- Run test case when the https service exist.
- Run test case when the server online. Please make sure the role of test case runner have capability to open socket
- Run test case when memory size enough
- Help each function with
#[test_with::runtime_*]
in the module can register to run Also you can set up a mock instance for all of the test in the module - Ignore test case when the environment variable is set.
- Run test case when the path(file or folder) exist.
- Run test case when physical cpu core enough
- Run test case when runner is root
- Run test case when the example running and available memory size enough
- Run test case when cpu core enough
- Run test case when the example running and the environment variable is set.
- Run test case when the executable existing
- Run test case when the example running and the file exist.
- Run test case when the example running and free memory size enough
- Run test case when the example running and free swap enough
- Run test case when runner in group
- Run test case when the example running and the http service exist.
- Run test case when the example running and the http service exist.
- Run test case when the example running and the server online. Please make sure the role of test case runner have capability to open socket
- Ignore test case when function return some reason The function should be
fn() -> Option<String>
- Run test case when the example running and memory size enough
- Ignore test case when the example running and the environment variable is set.
- Run test case when the example running and the path(file or folder) exist.
- Run test case when physical core enough
- Run test case when runner is root
- Run test case when the example running and swap enough
- Run test case when the example running and socket connected
- Run test case when runner is specific user
- Run test case when swap size enough
- Run test case when socket connected
- Run test case when runner is specific user