2020.10.17_pyhack
https://gyazo.com/cb2a1a72f5df6adee0ba326bef37a0d8
# モチベーション
この1、2年、Java、Javascipt(Typescript)、luaがメインで、Pythonの登場機会がほとんどなかったので、
テスト駆動の網羅的な復習と、Pythonへの復帰のきっかけになればよいなあと期待して読みました。
お仕事的には、人間仕事のソフトウェア化(DX)が過去最大級で叫ばれていて、
XXX-AIやAI-XXXが大量生産されつつあり、
研究開発物をそのAIなんとかにメンテナブルなデプロイができる形に仕立てる必要があり、
その効率化のためにはテスト自動化しないといけないってことで改めて勉強しておきたいなぁといった感じ。
”Python Testing with pytest”, The Pragmatic Programmers, 2017 の日本語翻訳本
- はじめてのpytest
- テスト関数を作成する
- pytestのフィクス茶
- 組み込みフィクスチャ
- プラグイン
- 構成
- pytestと他のツールを併用する
- 付録
仮想環境
pip
pytestプラグイン
pythonプロジェクトのパッケージ化と配布
xUnitフィクス茶
クラウドでpytestを使う(日本翻訳オリジナルあり)
pytestを用いたテスト駆動開発
- 一通りのテスト学びたい人: 1章、2章
- フィクスチャ解説でリファクタリングしたい人: 3、4章
- カスタム化プラグインなどでプロジェクトへの最適化させたい人(ヒント):5、6、7章
- pytestの環境構築などを一通り知りたい人: 付録A-G
# サンプル環境
python3.6とpytest3.2での動作なので、20201017現在のpythonリリース3.9で動作する。
# pytestの特徴
pytestのソフトウェアテストフレームとしての特徴は、
- ユニットテスト、統合テスト、システムテストでテストが書きやすく読みやすい
- カスタムプラグイン作成による拡張性が高い
- unittest/noseのテストも実行できる(上位互換)
# 一通りのテスト学びたい人: 1章、2章
ドキュメント通りで過去やったことの復習になりました。
-XXXXのパラメタのところが整理されててよかったです。
#
# 雑学メモ
次の興味につながるメモやキーワードを記述しておく。
- pytest on Githubは100万件を超えている
- Qiita記事は160本以上
# pyhack内特筆メモ
pytestrandomlyで、テストパターン(状態混み)をランダム実行できるので、状態遷移としてありえないものも含めてテストが網羅的にできる。
ただし、「テスト駆動python」の本にはpytest-randomlyの記述がないのが残念とのことでした。