rust
自动化测试
测试函数
通过在函数定义时加上#[test]注解,可以得到一个测试函数,测试函数仅在运行cargo test命令时运行,分别输出每个测试函数的结果。
assert!、assert_eq!、assert_ne!宏
- assert!宏可以测试表达式的结果是否为true,若结果为true,则测试通过,否则测试失败。
- assert_eq!、assert_ne!宏可以测试表达式的结果与给定值是否相等,(根据宏的命名即可知晓测试通过的条件)
shoud_panic注解
函数定义时加上#[should_panic],可以测试应当panic的情况,在该测试函数发生panic时测试通过。
Result<T,E>用于测试函数
可以将使用assert!、assert_eq!、assert_ne!宏的测试函数转换为使用Result<T,E>作为返回值的测试函数,当返回OK(T)时测试通过,当返回Err(E)时测试失败。
cargo test的使用
- 并行设置
cargo test默认采用并行的方式运行测试函数,可以通过--test-threads参数来设置并行线程数量。
示例:
代码语言:shell复制//将并行线程数设置为1,即不采用并行的方式运行测试函数
cargo test -- --test-threads=1
- 函数输出设置
可以通过--show-output参数来显示测试通过时,测试函数的输出。
- 运行指定测试函数
可以在cargo test后加上测试函数名,来运行该测试函数。
也可以仅加上部分函数名,cargo test会自动进行模式匹配,仅运行正则匹配的测试函数。
- #[ingore]注解
可以在函数定义时加入#[ingore]注解,当运行cargo test时,不会运行该测试函数,仅能通过指定函数名的方式运行该测试函数。