簡體   English   中英

如何為 Rust 二進制 crate 編寫回歸測試?

[英]How to write regression tests for a Rust binary crate?

過去1 2 3 4有很多類似的帖子,但它們似乎都已過時或無關緊要。

我的問題是:你如何為 Rust 二進制文件編寫回歸測試?

我可以在我的src/main.rs文件中將它們設置為“單元測試”,但這很煩人。 理想情況下,它將設置為

root
|---src
    |---main.rs
    |---foo.rs
    |---bar.rs
|---tests
    |---regress1.rs
    |---regress2.rs

兩種選擇:

  1. 將您的代碼拆分為一個庫和一個二進制文件: src/lib.rssrc/main.rs 然后您可以編寫可以加載庫部分的tests/測試。

    如果您特別想利用tests/測試(“集成測試”)本身就是單獨的二進制文件這一事實(例如,如果您要測試的代碼使用全局變量或影響全局狀態的系統調用),則此選項是最佳選擇.

  2. 您可以在二進制代碼中編寫#[test]測試,而無需將它們直接放在src/main.rs文件中。 只需編寫mod tests; mod tests { mod regress1; } mod tests { mod regress1; }並將您的測試放在src/tests/regress1.rs中,然后像往常一樣在該文件中編寫#[test]函數。 (或者,如果您真的希望它們位於不同的目錄中,請在mod上使用#[path]屬性。)

    此選項允許更快的測試執行,因為測試不是單獨的二進制文件,並且將由 Rust 測試工具在線程中並行運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM