Ответ 1
Встроенная среда тестирования работает по умолчанию. Он разработан, чтобы предложить полезную, но простую поддержку для тестирования, которая охватывает многие потребности, и многие функции могут/должны быть протестированы с каждым тестом независимо от других. (Будучи независимыми, их можно запускать параллельно.)
Тем не менее, он прослушивает переменную среды RUST_TEST_THREADS
, например. RUST_TEST_THREADS=1 cargo test
будет запускать тесты в одном потоке. Однако, если вы хотите, чтобы эта функциональность для ваших тестов всегда, вам может быть интересно не использовать #[test]
, или, по крайней мере, не напрямую.
Наиболее гибким способом является поддержка cargo
для тестов, которые полностью определяют их собственную структуру, через Cargo.toml
:
[[test]]
name = "foo"
harness = false
При этом cargo test
будет компилировать и запускать tests/foo.rs
как двоичный файл. Это может гарантировать, что операции будут упорядочены /reset соответственно.
В качестве альтернативы, возможно, для такой структуры, как stainless
, необходимы необходимые функции. (Я не использовал его, поэтому не уверен.)