Testing 如何为生锈的二元板条箱编写回归测试?

Testing 如何为生锈的二元板条箱编写回归测试?,testing,rust,Testing,Rust,过去也有很多类似的帖子,但它们似乎都过时了或无关紧要 我的问题是:如何为Rust二进制文件编写回归测试 我可以在src/main.rs文件中将它们设置为“单元测试”,但这很烦人。理想情况下,它将被设置为 root |---src |---main.rs |---foo.rs |---bar.rs |---tests |---regress1.rs |---regress2.rs 两种选择: 将代码拆分为库和二进制文件:src/lib.rs和src/mai

过去也有很多类似的帖子,但它们似乎都过时了或无关紧要

我的问题是:如何为Rust二进制文件编写回归测试

我可以在
src/main.rs
文件中将它们设置为“单元测试”,但这很烦人。理想情况下,它将被设置为

root
|---src
    |---main.rs
    |---foo.rs
    |---bar.rs
|---tests
    |---regress1.rs
    |---regress2.rs
两种选择:

  • 将代码拆分为库和二进制文件:
    src/lib.rs
    src/main.rs
    。然后您可以编写
    测试/
    测试来加载库部件

    如果您特别希望利用
    tests/
    tests(“集成测试”)是单独的二进制文件这一事实(例如,如果您要测试的代码使用影响全局状态的全局变量或系统调用),则此选项是最好的

  • 您可以用二进制代码编写
    #[test]
    测试,而无需将它们直接放入
    src/main.rs
    文件中。只需编写
    mod测试
    mod tests{mod regresse1;}
    并将您的测试放入
    src/tests/regresse1.rs
    ,然后在该文件中写入
    #[test]
    正常运行。(或者,如果您确实希望它们位于不同的目录中,请使用
    mod
    上的
    #[path]
    属性)

    此选项允许更快的测试执行,因为测试不是单独的二进制文件,并且将通过Rust测试工具在线程中并行运行