[][src]Crate envtestkit

Test kit for logics which involves environment variables.

Usage

To test environment-related logics:

use envtestkit::lock::lock_test;
use envtestkit::set_env;
use std::ffi::OsString;

let _lock = lock_test();
let _test = set_env(OsString::from("ENV_KEY"), "value");
// Put your test logic here ...

Complete examples can be found in examples/ directory of this crate.

Race Condition

Environment variables are global states. These things need to be ensured for building robust tests:

  • Run environment-modifying tests in serial.
  • Run environment-sensitive tests while no environment-modifying tests are running at the moment.

For that, please use appropriate locks in your tests. See the lock module.

Modules

lock

Tools for serializing environment-modifying tests.

Structs

EnvironmentTestGuard

Guard temporary environment modification.

Functions

set_env

Set environment variable temporarily for testing.