我絕對是 Rust 的菜鳥,而且 Rust 書似乎沒有涵蓋我的單元測驗特定用例。
我正在為我的大學學位實施計算機語言基準游戲。為了保持一致,我決定每種語言和演算法的實作都應該遵循以下目錄結構:
root
|
|__ language_1
| |
| |__ algorithm_1
| | |
| | |__ algorithm_1 <-- The algorithm logic.
| | |
| | |__ algorithm_1_tests <-- Tests.
| | |
| | |__ algorithm_1_run <-- A `main` function to execute the algorithm logic.
| |
| |__ algorithm_2
|
|__ language_2
...
我需要這種一致性,因為我稍后會撰寫一個 bash 腳本來遍歷這個目錄樹結構,并且能夠輕松編譯(如果需要)和運行必要的檔案。
我目前正在學習和撰寫 Rust 編程語言的演算法。我將演算法創建為一個庫檔案,并有一個單獨的檔案來呼叫庫檔案并在里面執行函式。這作業正常。
我的問題在于測驗。我希望有一個包含所有測驗的單獨檔案,匯入原始演算法邏輯檔案,并呼叫(和斷言)函式。
為了更清楚地說明這一點,我將提供一個我正在運行的模擬示例:
root
|
|__ rust
| |
| |__ algorithm
| | |
| | |__ algorithm.rs
| | |
| | |__ algorithm_tests.rs
| | |
| | |__ algorithm_run.rs
algorithm.rs
fn is_even(a: u32) -> bool {
return a % 2 == 0;
}
algorithm_run.rs
mod algorithm;
fn main() {
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for number in numbers {
algorithm::is_even(number);
}
algorithm_tests.rs
mod algorithm;
#[test]
fn test_is_even_returns_true_for_even_numbers() {
let even_numbers = [2, 4, 6, 8, 10]
for number in even_numbers {
assert_eq!(true, algorithm::is_even(number));
}
}
這是執行并使用以下命令運行
$ rustc algorithm_run.rs -o algorithm && ./algorithm
我需要執行什么命令或修改來運行測驗?
uj5u.com熱心網友回復:
您可以通過--test測驗工具進行編譯:
$ rustc --test algorithm_tests.rs && ./algorithm_tests
running 1 test
test test_is_even_returns_true_for_even_numbers ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/379797.html
上一篇:DOM簡介
下一篇:Angular如何測驗組件方法?
