Closed keitakn closed 11 months ago
https://github.com/nekochans/ai-cat-api/issues/73
https://github.com/nekochans/ai-cat-api/issues/73 の完了の定義を満たす為にコンテナでMySQLを起動するように変更。
テストコードに関してはMySQLのコンテナを参照するようにする。
なし
コンテナでMySQLを起動するように変更しました。
またDBを利用したテストコードの速度低下を避ける為に pytest-xdist を使ってテストを並列実行するようにしました。
pytest-xdist
しかしこのままだとテスト同士のDBの初期化処理などが衝突してしまいテストが失敗してしまいます。
その為、以下のようなアプローチを採用しました。
これによってデータベースを使ったテストの並列実行を可能にしています。
特になし
テストを並列実行すると print が出力出来なくなる。
print
これは pytest-xdist によって -s/--capture=no が無効化されてしまうから。
-s/--capture=no
以下のように sys.stderr に出力するようにすれば表示させる事が可能。
sys.stderr
import sys print("AAAAAAAAAAAA", file=sys.stderr)
issueURL
https://github.com/nekochans/ai-cat-api/issues/73
この PR で対応する範囲 / この PR で対応しない範囲
https://github.com/nekochans/ai-cat-api/issues/73 の完了の定義を満たす為にコンテナでMySQLを起動するように変更。
テストコードに関してはMySQLのコンテナを参照するようにする。
Storybook の URL、 スクリーンショット
なし
変更点概要
コンテナでMySQLを起動するように変更しました。
またDBを利用したテストコードの速度低下を避ける為に
pytest-xdist
を使ってテストを並列実行するようにしました。しかしこのままだとテスト同士のDBの初期化処理などが衝突してしまいテストが失敗してしまいます。
その為、以下のようなアプローチを採用しました。
これによってデータベースを使ったテストの並列実行を可能にしています。
レビュアーに重点的にチェックして欲しい点
特になし
補足情報
テストを並列実行すると
print
が出力出来なくなる。これは
pytest-xdist
によって-s/--capture=no
が無効化されてしまうから。以下のように
sys.stderr
に出力するようにすれば表示させる事が可能。