テストに失敗した場合と報告書

テストに失敗すると、次のようにfailedが出力に現れる。

テストに失敗した場合

PS C:\Users\daichi\Documents\vscode-csv2tsv> make test
cd tests; kyua test
test.atf-sh:doublequotes  ->  passed  [0.679s]
test.atf-sh:empty  ->  passed  [0.675s]
test.atf-sh:normal  ->  failed: atf-check failed; see the output of the test for details  [0.710s]
test.atf-sh:spaces  ->  passed  [0.639s]

Results file id is c_Users_daichi_Documents_vscode-csv2tsv_tests.20211102-002304-386321
Results saved to /c/Users/daichi/.kyua/store/results.c_Users_daichi_Documents_vscode-csv2tsv_tests.20211102-002304-386321.db

3/4 passed (1 failed)
make: *** [Makefile:21: test-kyua] エラー 1
PS C:\Users\daichi\Documents\vscode-csv2tsv>

テストに失敗した場合は、まず報告書をチェックする。Kyuaでは次のようにkyua reportでHTML版の報告書が生成される。

Kyuaで報告書を作成

kyua report

ここではMakefileにも取り込んであるので、「make report」でもレポートの作成ができる。作成される報告書は次のようなものだ。

  • Kyuaのテスト報告書

    Kyuaのテスト報告書

失敗したテストにはリンクが張られ、より詳しい情報を確認することができる。

  • 失敗したテストの詳細情報

    失敗したテストの詳細情報

  • 失敗したテストの詳細情報

    失敗したテストの詳細情報

報告書には、テストを実行した環境の環境変数一覧も出力されている。環境変数が挙動に影響を及ぼしていることも多いため、大切なデータだ。

  • テスト実行時の環境変数

    テスト実行時の環境変数

こんな感じで失敗したテストコードを調べて、実際にプログラムの修正へ結びつけていくという作業を行うことになる。

テストフレームワークの利用を検討しよう

Kyuaの使い方自体を1回で説明するのは無理があるので、簡単にその雰囲気だけつかんでいただければと思う。

テストフレームワークを使うかどうかは、ケースバイケースで検討する必要がある。ただ、互換性を維持しつつソフトウェアの開発を継続していくならテストコードの実装は必須にしておきたいし、その場合はテストフレームワークの採用も検討したいところだ。うまくハマれば力強いツールとして開発をサポートしてくれると思う。

これまで、Windowsにおける開発環境のセットアップから、簡単ながらも実用的なコマンドの開発、互換性を維持するためのテストコードの追加とテストフレームワーム利用といった作業を一通り行ってきた。規模はミニマムだが、実用的な内容を示すことができたのではないかと思う。これまで取り上げてきた開発方法はLinuxやMacにも応用が可能だし、カスタマイズして演習として一度取り組んでもらえれば幸いだ。