按名称对“cargo test”中的测试进行排序

Mar*_*ger 4 testing rust rust-cargo

我正在运行一些测试,cargo test并且希望测试按字母顺序排序。如果我这样做,cargo run我会得到类似以下内容:

test node::tests::start_node::get_value_start ... ok
test node::tests::start_node::get_value ... ok
test node::tests::start_node::set_value ... ok
test node::tests::main_node::test_new ... ok
test main_tests::run_checks ... ok
test node::tests::start_node::test_new ... ok
test sigmoid::tests::sig_deriv_f32 ... ok
test sigmoid::tests::sig_deriv_inf::test_f32 ... ok
test sigmoid::tests::sig_deriv_inf::test_f64 ... ok
test training_data::tests::iter_chunks ... ok
test training_data::tests::get_chunks ... ok
test sigmoid::tests::sig_inf::test_f64 ... ok
test sigmoid::tests::sig_f32 ... ok
test sigmoid::tests::sig_inf::test_f32 ... ok
test sigmoid::tests::sig_deriv_f64 ... ok
test sigmoid::tests::sig_f64 ... ok
Run Code Online (Sandbox Code Playgroud)

并且测试每次都以不同的、看似随机的顺序输出。

有没有办法输出测试,以便它们按字母顺序排序,如下所示:

test main_tests::run_checks ... ok
test node::tests::main_node::test_new ... ok
test node::tests::start_node::get_value_start ... ok
test node::tests::start_node::get_value ... ok
test node::tests::start_node::set_value ... ok
test node::tests::start_node::test_new ... ok
test sigmoid::tests::sig_deriv_f32 ... ok
test sigmoid::tests::sig_deriv_f64 ... ok
test sigmoid::tests::sig_deriv_inf::test_f32 ... ok
test sigmoid::tests::sig_deriv_inf::test_f64 ... ok
test sigmoid::tests::sig_f32 ... ok
test sigmoid::tests::sig_f64 ... ok
test sigmoid::tests::sig_inf::test_f32 ... ok
test sigmoid::tests::sig_inf::test_f64 ... ok
test training_data::tests::iter_chunks ... ok
test training_data::tests::get_chunks ... ok
Run Code Online (Sandbox Code Playgroud)

caf*_*e25 7

默认情况下它们已经按字母顺序运行,问题是它们也并行运行并尽快输出结果以节省您一些时间。如果您希望输出按排序顺序排列,则必须通过将测试框架限制为一个线程来连续运行测试:

cargo test -- --test-threads=1
Run Code Online (Sandbox Code Playgroud)

请注意,这很可能会增加测试所需的时间。