こんにちは、ROBOT PAYMENTのペイメント事業部システム課のtaniguchikun です。
今回はサブスクペイのユニットテストがどのように行われているかを紹介致します。 ※ ツールの使い方等に関しましては本記事が好評であれば別途投稿を行いたいと思います。
前提条件
- 開発環境
- OS:Windows10
- 開発ツール:VisualStudio2019
- DB:SQLServer2019
- コード管理されております
- ユニットテスト実行環境
- OS:Windows10
- ユニットテストフレームワーク:VsTest
- カバレッジ測定ツール:OpenCover
- レポート作成ツール:ReportGenerator
- DB操作ツール:mssql-scripter
サブスクペイのユニットテスト時の概要
下記の手順がユニットテストを実行する為のPCで毎朝行われているようになっています。
- Git上から最新のdevelopブランチ(開発用ブランチ)のコードをプルしております
- カバレッジ測定ツールからユニットテストの実行を行います
- ユニットテストが完了後にコードカバレッジの結果からレポートを作成しております
- レポートのカバレッジ情報をSlackでチームに通知します
ユニットテスト時の挙動
ユニットテストが実行された際の挙動については下記に記載します。
- ユニットテスト実行時に開発で使用しているDBのバックアップを取得します
- データべースをコードから再構築します
- 作成されている単体テストの実行を行います
- テストメソッド毎にトランザクションを作成
- テストされたテストメソッドが終了すると作成したトランザクション内でのデータベース操作をロールバックし、データベースをテストメソッドが行われる前の状態に戻します
- データベースの操作が行われない単体テストについては、手順5が行われないようになっております
今後の改善についての予定
- 現在単体テストはデータベース操作等の影響により順次実行している為、ユニットテストの実行時間が長くなっております。
- 並行で行える単体テストは並行でテストを行い、順次テストを行う単体テストは順次行うといった改善を行っていく予定です。
- コード管理されているデータベースで一部テーブルのデータが大きく、再構築に時間が掛かっております。
- 一部テーブルのデータが大きい箇所のデータ削除を行う予定です。
We are hiring!!
ROBOT PAYMENTでは一緒に働く仲間を募集しています!!!
speakerdeck.com
www.robotpayment.co.jp
🎉twitter採用担当アカウント開設!🎉どんどん情報発信していきます!!