rustで実行/テスト/デバッグする方法【vscode】

この記事は、rustを始めようとしている方向けに書いています。
hello worldを通じてvscodeによる実行、テスト、デバッグまでを一通り手順がわかるようにまとめました。
とりあえず動かしたい方向けになりますので、詳しい情報が必要な方は公式ドキュメントをご参照ください。

環境構築がまだの方は、こちらで環境構築についてまとめていますのでご覧ください。
※windows用になります。

では本題です。

hello worldアプリの実行【コマンド】

まずは次のコマンドでプロジェクトを生成しましょう。

cargo new hello

cargo.tomlとhello worldを出力するソースコードまでを生成してくれます。
cargo.tomlがあるディレクトリで

cargo run

とコマンドを打てば「Hello, world!」と出力されます。

では準備が整いましたのでvscodeでデバッグ実行の手順に移ります。

vscodeでデバッグ実行

今回はlldbを利用したデバッグ構成をしていきます。
lldbがインストールされていない場合は先にインストールをお願いいたします。

vscodeでcargo.tomlがあるディレクトリを開きましょう。
つぎにmain.rsを開いた状態で「F5」キーを押下します。

デバッグが開始されようとするのですけども、vscodeにrustのデバッグ構成をしていないのでエラーがが表示されます。
OKをボタンをクリックしてポップアップを閉じましょう。

すると、次にデバッグ構成しませんかというポップアップがでるので「Yes」

再び「F5」を押下します。
「Hello, world!」と出力されたらデバッグ構成は完了です。

本当にデバッグできているのかの確認は、main.rs内の
「println!(“Hello, world!”);」にブレークポイントを置くことで確かめられます。

なお、デバッグ構成は.vscode/launch.jsonに保存されています。
今回のデバッグで利用した構成は”name”: “Debug executable ‘hello'”,
です。

では続いて単体テストとデバッグ方法の手順です。

テスト対象の準備

まずはテスト対象を作成します。
srcディレクトリにlib.rsファイルを作成しましょう。
※名前は必ずlib.rsである必要があります。

なお、詳細は省きますが、rustにおいてmain.rsは特別な扱いのためmain.rsにメソッドは書かずにlib.rsに記載します。

作成しましたら2を足すだけのシンプルなメソッドを記述します。


テストコード記述

次にtest用のディレクトリ「tests」をsrcと同じ階層に作ります。
ここでも名前が重要です。testsである必要があります。

tests/lib_test.rsファイルを作成し、


と記述ください。

これで先ほど用意した「2を足す」メソッドのテストが書けました。

テストの実行

cargo test

上記コマンドを実行するとメソッドの頭に[#test]が付与されたテストメソッドが実行される仕組みです。

なお、vscode上に「Run test」とリンクが表示されていると思います。
そちらを押下しても対象のテストが実行されます。

テストのデバッグ方法

テスト用の構成を作成します。
.vscode/launch.jsonのconfigurationsに
下記をコピペください。


デバッグ構成リストから

“Debug unit tests in library ‘hello'”を選択して実行ください。
「assert_eq!(hello::add2(2), 4);」にブレークポイントを置いておけばデバッグ実行を確認できます。

おわりに

以上でrustでの実行、テスト、デバッグ手順は終了です。
まだ、rustを動かしたことのない方の参考になれば幸いです。

では。