プログラムのテスト

一通り書き終わったと思ったら、提出前にまずは一度サンプルケースで答えが合うかどうかを確認してみましょう。コマンド プロンプトまたは端末を開いてプロジェクトフォルダに移動して、次のようなコマンドを実行します。

$ cargo test
   Compiling abc000 v0.1.0 (C:\Users\dicen\workspace\daily\2020\0406\abc000)
    Finished dev [unoptimized + debuginfo] target(s) in 0.52s
     Running target\debug\deps\main-1ecbd097f851d76e.exe

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target\debug\deps\sample_inputs-05a0de7d755e5cc1.exe

running 3 tests
No
test sample3 ... ok
Yes
test sample1 ... ok
No
test sample2 ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

すると、このようにテスト結果が表示されます。このように最後に test result: ok. となっていれば、すべてのテストに成功しているということになります。一方で、もし成功しないテストがあれば、次のようになります。

$ cargo test
   Compiling abc000 v0.1.0 (C:\Users\dicen\workspace\daily\2020\0406\abc000)
    Finished dev [unoptimized + debuginfo] target(s) in 0.68s
     Running target\debug\deps\main-1ecbd097f851d76e.exe

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target\debug\deps\sample_inputs-05a0de7d755e5cc1.exe

running 3 tests
No
test sample2 ... ok
Yes
No
test sample1 ... FAILED
test sample3 ... ok

failures:

---- sample1 stdout ----
thread 'sample1' panicked at 'assertion failed: `(left == right)`
  left: `"Yes\n"`,
 right: `"No\n"`', tests\sample_inputs.rs:16:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.


failures:
    sample1

test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '--test sample_inputs'

最後の test result: FAILED. により失敗したことが示されています。その横には成功と失敗の個数が示されています。そして上には失敗したときのコマンドの出力も示されています。 assertion failed 以降から、 No と出力すべきところを Yes と出力してしまったことがわかります。

Note: メッセージに示される left:right: はマクロ assert_eq!(left, right); に渡される引数の左右です。用意したテストコードでは実際の出力を左、期待される出力を右として assert_eq!(output.stdout_str(), "No\n"); としていたことから、本来は No と出力すべきところを Yes と表示した、ということがわかります。

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy