テストコード実行用コマンド追加、およびreadmeの更新

This commit is contained in:
x.azuma.m@nds-tyo.co.jp 2023-07-14 18:44:26 +09:00
parent 241838ef71
commit de9bf1a064
2 changed files with 90 additions and 14 deletions

View File

@ -5,7 +5,9 @@ name = "pypi"
[scripts]
"test:ultmarc" = "pytest tests/batch/ultmarc/"
"test:ultmarc:cov" = "pytest --cov=src/batch/ultmarc/ --cov-branch --cov-report=term-missing tests/batch/ultmarc/"
"test:ultmarc:cov" = "pytest --cov=src/batch/ultmarc/ --cov-branch --cov-report=term-missing tests/batch/vjsk/"
"test:vjsk" = "pytest tests/batch/vjsk/"
"test:vjsk:cov" = "pytest --cov=src/batch/vjsk/ --cov-branch --cov-report=term-missing tests/batch/vjsk/"
[packages]
boto3 = "*"

View File

@ -44,7 +44,7 @@
- 「entrypoint.py」が、バッチ処理のエントリーポイント。
- 実際の処理は、「src/jobctrl_daily.py」で行っている。
## 単体テスト
## 単体テスト(アルトマーク取込処理)
アルトマーク取込処理は、単体テストコードを使用してテスト自動化を行う
@ -68,7 +68,7 @@
| コマンド | 概要 |
| ---------------- | -------------------------------------------------------------------------------------------- |
| test:ultmarc | tests/batch/ultmarc フォルダ配下のユニットテストを実行する |
| test:ultmarc:cov | tests/batch/ultmarc フォルダ配下のユニットテストを実行し、テストカバレッジを取得する(C1, C2) |
| test:ultmarc:cov | tests/batch/ultmarc フォルダ配下のユニットテストを実行し、テストカバレッジを取得する(C0, C1) |
### テスト共通関数の仕様
@ -156,6 +156,43 @@
- テスト結果データと期待値データを突き合わせ、期待値どおりとなっているかを確認する
- ignore_col_nameに指定したカラムは、呼び出し元のテストコード内で個別に突き合わせする
## 単体テスト(実消化データ取込処理)
実消化データは、単体テストコードを使用してテスト自動化を行う
### テスト準備
※単体テスト(アルトマーク取込処理)と同じ
### テスト用のサブコマンド一覧
- `pipenv run`のあとに、サブコマンドとしてユーザー定義スクリプトを実行できる
- `Pipfile`内の「scripts」セクションに宣言されている
| コマンド | 概要 |
| ---------------- | -------------------------------------------------------------------------------------------- |
| test:vjsk | tests/batch/vjsk フォルダ配下のユニットテストを実行する |
| test:vjsk:cov | tests/batch/vjsk フォルダ配下のユニットテストを実行し、テストカバレッジを取得する(C0, C1) |
### テスト共通関数の仕様
- tests/testing_vjsk_utility.py内の共通関数の仕様について記載する
#### create_vjsk_assertion_list
- 概要
- DB登録期待値リストを作成する
- Args:
- file_path (str): DB登録期待値ファイル(tsvファイル)のパス
- memo: ※DB登録期待値ファイルの前提
- memo: 受領データファイルと同じ
- memo: BOM付きtsv形式
- memo: 一行目はカラム名になっているヘッダ行
- Returns:
- List(dict) DB登録期待値辞書リスト
## フォルダ構成
```text
@ -203,16 +240,53 @@
└── tests -- ユニットテストのルートディレクト
├── batch
│ └── ultmarc -- アルトマーク関連のユニットテストを格納する
│ └── utmp_tables
│ └── table_mapper -- 以下、マッパークラス単位でフォルダを切る
│ └── com_alma
│ ├── test_com_alma_mapper.py -- テストコード本体
│ ├── com_alma_insert.csv -- S3に配置される想定のテストCSVデータ。ケースごとに用意する。
│ ...
│ ├── db_com_alma_before_update.csv -- テスト時に事前にDBに登録しておくデータ。CSVで用意する。
│ ...
│ ├── expect_com_alma_insert.csv -- テストの期待値データ。CSVで用意する。
│ ...
│ │ └── utmp_tables
│ │ └── table_mapper -- 以下、マッパークラス単位でフォルダを切る
│ │ └── com_alma
│ │ ├── test_com_alma_mapper.py -- テストコード本体
│ │ ├── com_alma_insert.csv -- S3に配置される想定のテストCSVデータ。ケースごとに用意する。
│ │ ...
│ │ ├── db_com_alma_before_update.csv -- テスト時に事前にDBに登録しておくデータ。CSVで用意する。
│ │ ...
│ │ ├── expect_com_alma_insert.csv -- テストの期待値データ。CSVで用意する。
│ │ ...
│ └─vjsk -- 実消化データ取込処理関連のユニットテストを格納する
│ │
│ ├─vjsk_file_check -- 受領ファイルチェック処理関連のユニットテストを格納する
│ │ ├─conftest.py -- テスト内で共通利用できるフィクスチャの宣言
│ │ └─test_vjsk_file_check.py -- テストクラス本体
│ │
│ └─vjsk_load -- 受領データ登録処理関連のユニットテストを格納する
│ │ conftest.py -- テスト内で共通利用できるフィクスチャの宣言
│ │ test_vjsk_load.py -- テストクラス本体
│ │
│ └─testdata -- テストモジュールが使用するテストデータを格納する
│ │ bio_slip_data_202304280000.tsv -- 正常ケースの単体確認用
│ │ ... -- *20230428* は新規4件の登録確認用
│ │ whs_mst_202304290000.tsv -- *20230429* は更新2件+追加新規2件の登録確認用
│ │
│ ├─NoData -- 正常ケースの単体確認用
│ │ bio_slip_data_nodatarecord.tsv -- ヘッダ行のみでデータが0件の動作確認用
│ │ ...
│ │ whs_mst_nodatarecord.tsv
│ │
│ ├─TestFormatErrorFile -- 異常ケースの単体確認用
│ │ bio_slip_data_formaterror.tsv -- 末尾行のタブ数が想定と異なる(ファイル欠落がある)ときの動作確認用
│ │ ...
│ │ whs_mst_formaterror.tsv
│ │
│ ├─TestImportFileToDb -- 正常ケースの単体確認用
│ │ bio_slip_data_202304270000.gz -- 対向元システムから送られてきた状態(gz圧縮)の受領データファイルの動作確認用
│ │ ...
│ │ whs_mst_202304270000.gz
│ │
│ └─UnzipError -- 異常ケースの単体確認用
│ bio_slip_data_202304270000.gz -- gz圧縮ファイルが解凍できないときの動作確認用
│ ...
│ whs_mst_202304270000.gz
├── conftest.py -- テスト内で共通利用できるフィクスチャを宣言する(執筆時点ではDBのみ)
└── testing_utility.py -- テストの共通関数
├── testing_utility.py -- テストの共通関数
└── testing_vjsk_utility.py -- テストの共通関数(実消化データ取込処理関連)
```