テスト作業メモ
2021-01-25
https://gyazo.com/d39aeaa66e75a16771389159cb5e2c3c
テスト対象をmainに入れるとか色々な流儀があるみたいだけど、Herokuにデプロイする上での公式ドキュメントに合わせてこの構造にしてるのでテストのために変えたくはない
rootでpython -m pytest
カレントディレクトリがsys.pathに入るのでテストコードからfrom server.keicho import process_commandとかできる、素直
ipythonで%run tests/test_foo.pyもできる
まとめて呼ぶ時はテストランナーでもいいけど、デバッグする時にはデバッガ使いたいからね
python -m pytest tests/test_foo.pyで個別テストファイルを試して、ひと段落ついたら全部走らせる
サーバを叩くテストケースは重いし、そもそも手元の修正をデプロイしない限りサーバの挙動は変わらないはずだからね
テストの方針の2をやったら予期しない振る舞いをして混乱、原因究明のために3, 4とテストしながら掘り下げて行った 結論、移植の時に入れたバグ
「なぜかコマンドに対してもキーワード抽出が走ってしまう」
テストなしでリファクタして挙動が変わるミス
テストの安定性
ランダム要素はないはずだったが「スコア最大のものを選ぶ」という処理で同じスコアになるケースがあった
優先したい方に少しだけ下駄をはかせる形にした