並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 63件

新着順 人気順

Pytestの検索結果1 - 40 件 / 63件

  • Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる

    Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる 概要 Pythonのテストライブラリといえばpytestが一般的です。 Python標準のuniitestとは異なり、クラスベースではなく関数ベースでテストコードを記述することが一般的ですが、fixture,conftest,parametrizeを理解すると一気に世界が変わり、テスト体験が圧倒的に向上するため、これらの実装方法を紹介します。 リポジトリ 本記事の説明に使用しているサンプルのテスト実装は、以下のリポジトリです。 想定読者 PythonやGitの基本的な使い方を理解している方を想定しているため、基本的な用語説明は省略しています。 環境 エンジニアの利用率の高いmacOSを前提として説明していますので、その他の環境の方は随時読み替えてください。 開

      Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる
    • 【超初心者向け】Pythonのテストの書き方(pytest, unittest) - Qiita

      概要 pythonでテストコードを書くときがありますが、(筆者のように)超初心者からすると難しい用語や書き方がたくさん並んでいてハードルが高いです。 テストコードの入口となる最低限(最低限過ぎるかもしれませんが)の書き方を備忘を兼ねて書きます。 pythonでのテストコードを書く時のライブラリの種類 筆者が簡単に調べたところ、2つのライブラリがよく使われているようです。 unittest : python標準ライブラリ。インストールが必要ない。pytestと比較すると、柔軟なテストケースを書きづらい。 pytest : サードパーティ製のライブラリ。インストールの必要がある。柔軟なテストケースが書ける。pythonのテストコードを書く時のデファクトスタンダートになりつつある模様(これが本当かは確認していないですが、そういう記述を見かけることが多かったです)。 筆者個人としては、以下の3つの

        【超初心者向け】Pythonのテストの書き方(pytest, unittest) - Qiita
      • pytest ヘビー🐍ユーザーへの第一歩 - エムスリーテックブログ

        蛇行区間にはレールの内側に脱線防止ガードが設置される(本文とは関係ありません)。 こんにちは、エムスリー・エンジニアリングG・基盤開発チーム小本です。 pytest は Python のユニットテストのデファクトスタンダードです。エムスリーでも顧客向けレポートや機械学習でPython&pytest をヘビー🐍1に使っています。 ですが、実は pytest は、意外と入門のハードルが高い。と言うのも、pytest の公式ドキュメント が、fixtureのような新概念も登場する上、詳細で分量が多いからです(しかも英語)。初心者にいきなり読ませると挫折する可能性大です 2。 そこで、とりあえず使い始めるのに必要そうな情報を日本語でまとめました。 pytest ってどんなライブラリ? unittest や nose から簡単に移行できる 書き方がシンプル fixture モックもできる プラグイ

          pytest ヘビー🐍ユーザーへの第一歩 - エムスリーテックブログ
        • 『テスト駆動Python』入門 ― pytestとテスト駆動開発

          書籍『テスト駆動Python』の内容に沿って、Pythonようテスティングフレームワークであるpytestの簡単な使い方などを紹介します。テスト駆動開発についても触れます。

            『テスト駆動Python』入門 ― pytestとテスト駆動開発
          • pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog

            概要 Web バックエンドのテストコードを書く場合、その多くは DB に依存していることが多いです。 DB 関連のテストは、テストデータの準備やテストケース毎の DB 処理化を適切に行うことが重要ですが、手間がかかる場合あるため、Mock で擬似的にテストしてしまうことも多いかと思います。 ただ、Mock を使ったテストは本質的な問題を検知できない意味のないテストになってしまう可能性があり、可能な限り DB の Mock を行わずに、実際の DB を使用してテストすることが望ましいと考えています。 本記事では、pytest、sqlalchemy、PostgreSQL を使った場合に、テストケース毎に DB を簡単に初期化しつつ、テストケース毎の前提データ登録も簡単うことでテスト開発体験を向上させる方法を紹介します。 前提環境 本記事では、以下の環境を前提として説明いたします。 python

              pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog
            • Serverless Dashboardを使って爆速でCICD環境をセットアップ #pytest | DevelopersIO

              Serverless Framework DashboardのCICD機能を使ってデプロイパイプラインを構築する方法をご紹介します。 Serverless Frameworkのダッシュボードがあるのを最近知って使ってみました。 かなり使い心地が良くて画面上からサクッとCICD環境を作成できたので、この記事で手順を残しておきます。 今回はデプロイ先はAWSでブランチ毎にAWSアカウントを切り替える、ランタイムはPythonでpytestをデプロイ前に実行する、という構成にしていきます。 環境 Serverless Framework Framework Core: 2.2.0 Plugin: 4.0.4 SDK: 2.3.2 Components: 3.1.4 Python: 3.8.5 Pipenv: 2020.8.13 pytest: 6.0.2 moto: 1.3.16 セットアップ

                Serverless Dashboardを使って爆速でCICD環境をセットアップ #pytest | DevelopersIO
              • pytest fixtureの地味だけど重要な部分について - 株式会社ホクソエムのブログ

                こんにちは。ホクソエム支援部サポーターのPython担当、藤岡です。 最近はデータエンジニア見習いとしてBI周りを触っています。 今回はpytestのfixtureについての記事です。 pytest自体が有名で記事もたくさんあるので、今回は地味だけど重要だと個人的に思っている usefixturesとスコープについて取り上げます。 地味とはいえ、pytestの初心者がfixtureを使いこなすためのステップアップに必要な内容だと思います。 ぜひマスターしていただければ幸いです。 1. 前書き 基礎的なことに関してはこの記事にとても簡潔にまとまっているので、こちらをまず読むのがオススメです。とても良い記事です。 pytestは独自の書き方を持ち込んでいるライブラリです。その機能を使いこなすと「綺麗」なコードにはなりますが、反面それは使われている機能を知らない人にとってはこの上なく読みにくいも

                  pytest fixtureの地味だけど重要な部分について - 株式会社ホクソエムのブログ
                • LT「データまえしょりすとのためのpytest入門」@みんなのPython勉強会#46

                  Bokeh & Dash Cytoscape 〜 Pythonによるインタラクティブなネットワーク可視化ライブラリの比較 / PyConJP2021

                    LT「データまえしょりすとのためのpytest入門」@みんなのPython勉強会#46
                  • Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か

                    Hypothesisとは何か、プロパティベーステストとは何か Hypothesisは、Python向けのプロパティベーステストのライブラリである。 プロパティベーステストは、生成された多数の入力データに対してプロパティ(性質)が満たされるかどうかをテストする手法である。 HaskellのQuickCheckライブラリが初出で、現在は各プログラミング言語に移植されている。 従来のユニットテストは、ある程度固定したテストデータを指定してテストを行っていた。 その際、境界値分析などで妥当なパラメータを決定していた。 しかし、境界値分析が必ず通用するとは限らないし、人間が行う以上、ミスも発生する。 プロパティベーステストはデータを固定する代わりにそのデータが満たすプロパティを指定してテストを行う。 実際のテストケースはHypothesisがプロパティを満たすパラメータを決めて生成してくれる。 人力

                      Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か
                    • 8.2. pytest - ゼロから学ぶ Python

                      ホーム 1. Python を始める 2. 基本仕様 3. クラス 4. モジュールとパッケージ 5. ファイル操作 6. 例外 7. ジェネレータ 8. テスト

                      • pytest で単体テストの方法まとめ - Qiita

                        概要 Python には pytest という単体テストを書く機能があり、便利なのですが、他の言語と若干仕様が異なるので、よく使う機能を備忘録としてまとめておきます。 テストの書き方・実行方法 CreateXxx というクラスが print_aaa というメソッドを持っている場合のテストケース。 import pytest from xxx import CreateXxx, XxxError class TestCreateXxx: # 通常の評価 def test__can_print_aaa(self): xxx = CreateXxx() assert xxx.print_aaa(111) == 'aaa' # エラーがでることを評価 def test__can_raise_error(self): xxx = CreateXxx() with pytest.raises(XxxE

                          pytest で単体テストの方法まとめ - Qiita
                        • pytestのparametrizeの使い方とその有用性について - Zeals TECH BLOG

                          ※こちらはZeals AdventCalendar 12日目の記事です。 こんにちは! Pythonエンジニアの荒木です。 夏頃に社内の開発プロジェクトにPythonメンバーとしてアサインされ、本格的にPythonを業務で書くようになり、最近はほぼ毎日Pythonを書いています。 Pythonの業務としては主に新機能実装とDBリファクタリングをやっています。 今日はpytestのparametrizeの基本的な使い方と parametrizeでちょっと詰まったところがあったので、それらについて書きます。 目次は以下のようになります。 前提 parametrizeについて parametrize とは parametrize の使い方 fixtureをparametrizeする fixtureとは fixtureのparametrize 終わりに 前提 まず、以前にこちらの記事で紹介したよう

                            pytestのparametrizeの使い方とその有用性について - Zeals TECH BLOG
                          • 【pytest】モックの使い方まとめ

                            はじめに 下記のような処理の場合、そのまま実行させてテストするのが難しかったりします。 外部システムへアクセスする ⇒ 外部APIやスクレイピングしてたりする場合 ライブラリに依存する処理 ⇒ ライブラリの処理結果ごとのテストをしたい(戻り値、例外の種類での分岐など) テスト実行の度に返す値が異なる処理を利用する ⇒ 現在日時、ランダム値は、実行の度に変化するのでテストの時だけ固定値にしたい こういう場合、モックを使うと処理を差し替えられるので便利です。 使い方 前提 pytestとpytest-mockのライブラリを利用します。 pytest-mockはunittest.mockのラッパーです。書き方は異なるが、だいたいunittest.mockと同じような感じです。 with使ってpatchする方法も検索すると出てきたが、1つのテストでここまでは実際の動きで、ここからはモックで動かす状

                              【pytest】モックの使い方まとめ
                            • pytest入門 - 闘うITエンジニアの覚え書き

                              2024-02-04 Goでリフレクション 他のdocker-compose へのネットワーク接続 2024-01-09 Grafanaパネルプラグイン開発(create-plugin版) Grafanaプラグイン開発(grafana/toolkit版) 2023-09-23 Jupyter Lab に他言語カーネルインストール 2023-09-19 Rustの基礎 Rustのインストール Rust 2022-11-01 MacBook(M1チップ) でOracleのdockerイメージ作成 2022-02-04 Grafanaバックエンドデータソースプラグイン開発 2021-02-11 dockerのnginxのSSL証明書の自動更新 2021-01-17 GoでExcelを読む 2021-01-05 GoでAzure AAD認証 2020-12-16 FrontPage 2020-12

                              • PythonのデフォルトのUnitTestsではなくpytestを使うべき7つの理由 - MyEnigma

                                リンク 目次 目次 はじめに PythonのデフォルトのUnitTestsではなくpytestを使うべき7つの理由 1. クラスを作らずにシンプルな関数でテスト関数を作ることができる。 2. 様々なassert関数を覚えなくて良い 3. テストが失敗した理由がわかりやすい 4. テストの検索と実行が高機能 (auto discovery) 5. 様々なプラグインが公開されており、簡単に機能追加できる 6. UnitTestsで作成されたテストも実行できる 7. テストの実行時間のランキングを簡単に作成してくれる 便利なコマンドライン引数表 PythonのIDEとpytestの連携 参考資料 MyEnigma Supporters はじめに これまで、自分はPythonのユニットテストには、 PythonのデフォルトのUnitTestsを使っていましたが、 docs.python.org m

                                  PythonのデフォルトのUnitTestsではなくpytestを使うべき7つの理由 - MyEnigma
                                • pytest&Docker outside of Docker(DooD)を利用してDBアクセスのテストを副作用なく軽量に実現する

                                  前書き アプリケーション開発において大変重要となるのがテストです。既存のアプリケーションに様々な変更が入る度に、既存の機能に新たなバグを潜めてないか確認するために、多くのエンジニアが苦汁を舐めた経験があることでしょう・・・。(そこでバグが見つかればいいが、忘れたころに発見すると・・・) そんな面倒なテストを自動化するために、最近はテストコード、あるいはテスト自動化が流行ってきていると思います。 ただし、オンプレミスでテストを行っていると、すぐにテスト用のDBなんて用意出来ないです。そのため、開発用で利用しているDBをそのまま使うパターンがままあると思います。 しかし、そうなると次に問題になるのがDBの状態です。様々な開発及びテストによってぐちゃぐちゃになったDB内部のデータを利用すると、その状態に応じて、結果は変わってきます。このような状態になってしまうと、本来確認したい観点を確認すること

                                    pytest&Docker outside of Docker(DooD)を利用してDBアクセスのテストを副作用なく軽量に実現する
                                  • Python開発環境構築手順(VSCode, Docker, Poetry, isort, black, flake8, pytest) - Qiita

                                    Python開発環境構築手順(VSCode, Docker, Poetry, isort, black, flake8, pytest)Python はじめに Python開発環境を整備し直したときのメモです コードはこちらに配置しています どういう開発環境を作るか VSCode・Docker上で実行する(ローカルでの実行を想定) パッケージ管理はPoetryを利用する linter, formatterはisort, black, flake8を利用する コマンドだけでなくVSCodeからも利用する テストはpytestを利用する Jupyter Notebookも利用可能にしておく セットアップ手順 事前準備【ローカル】 VSCode・Dockerのインストール VSCode拡張機能Remote Developmentのインストール 設定ファイルの配置 (参考)フォルダ構成 . ├──

                                      Python開発環境構築手順(VSCode, Docker, Poetry, isort, black, flake8, pytest) - Qiita
                                    • [Pytest] pytest 入門、テストコードを書く方法

                                      pytest とは pytest: helps you write better programs — pytest documentation pytest は Python のテストツールの1種です。Python には unittest とという標準ライブラリのテストツールがありますが、より Python らしくテストコードを書くことができるのが pytest の特徴です。 pytest は小規模なテストコードの作成から複雑なテストコードの拡張まで対応できる優秀なツールであり、Python のデファクトスタンダードとなっているテストツールでもあります。 pytest のインストール pip 経由で pytest をインストールします。 $ pip install pytest pytest テストコードの基本 pytest は test_*.py もしくは *_test.py という名

                                        [Pytest] pytest 入門、テストコードを書く方法
                                      • Pythonにおけるimportの仕組みとPytest

                                        PytestでPythonのテストを書いているときにテスト対象モジュールのimportやディレクトリ構成で色々詰まったので、これを機にPythonにおけるimportの仕組みから調べましたので記事にまとめます。 Pythonを書き始めてそれなりの年月が経ちましたが意外とそもそものimportの仕組みはなあなあで済ませていたので、個人的にはかなり勉強になりました。 この記事では大きく分けて以下2点についてまとめます。 Pythonのimportの仕組み 上記を踏まえたテスト時(pytest)のimportについて Pythonにおけるimportの仕組み Pythonのプログラムを書いていれば当たり前のようにimportを使っていると思います。 importする対象としては主に以下3つに分けられると思いますが、そもそもどうしてこれらのライブラリをimportできるのでしょうか。 自分で書いた

                                          Pythonにおけるimportの仕組みとPytest
                                        • pytestの使い方と便利な機能 - Qiita

                                          pytestはPythonのテストフレームワークの一つ。 unittestなど他のフレームワークと比較して、テストに失敗した原因が分かりやすい。 この記事ではpytestの使い方に関して、公式のドキュメントを参考にメモする。 インストール pipなどを使用してインストールする。 基本的な使い方 基本的にはassertで望む結果を書く。 ここではtest_assert1.pyというテスト用のファイルを作成する。test_で始まる関数がテスト対象となる。ディスカバリーのルールに関してはこの記事の最後に明記する。 $ pytest test_assert1.py =========================== test session starts ============================ platform linux -- Python 3.x.y, pytest-3.

                                            pytestの使い方と便利な機能 - Qiita
                                          • pytestチートシート - Qiita

                                            # 引数の文字列を結合して返却します。 def join(val1: str, val2: str) -> str: return val1 + val2 def test_join(): # assertを利用して、echoが期待する結果となっていることを確認 assert join('dummy1', 'dummy2') == 'dummy1dummy2' # assert notを利用して、echoが期待しない結果となっていないことを確認 assert not join('dummy1', 'dummy2') == 'dummy1' テストの実行方法 プロジェクトのルートがC:/python/pytest_cheatsheetであるとの前提の説明となります。 pytestのテストケースのモジュール(.pyファイル)を相対パスで指定する場合は、cd C:/python/pytest_c

                                              pytestチートシート - Qiita
                                            • pytestした時にModuleNotFoundErrorが出る時の原因と対処法

                                              背景 Pythonでは大体pytestを使うのですが、序盤でよくこけるけど、毎回原因を忘れてしまって思い出すまでに時間がかかって困る以下のpytest利用時のエラーについての備忘録を書いておきます E ModuleNotFoundError: No module named 'hogehoge' 現状 ここでは以下のディレクトリ構成のプロジェクトを想定しています。 . ├── poetry.lock ├── pyproject.toml ├── src │   └── mypkg │   └── func.py └── tests └── test_mypkg └── test_app.py [tool.poetry] name = "pytest_test" version = "0.1.0" description = "" authors = ["hogehoge"] [tool.p

                                                pytestした時にModuleNotFoundErrorが出る時の原因と対処法
                                              • pytest:フィクスチャ(fixture)の使い方 - Qiita

                                                はじめに pytestはPython用のテストツールです。 標準のunittestに比べ、テストエラー時の結果が分かりやすいのが特徴です。 例として、辞書オブジェクトを比較する以下のテストコードをunittestとpytestそれぞれで実行してみます。 # test_dict.py import unittest dict1 = {'name': 'Tom', 'age': 20} dict2 = {'name': 'John', 'age': 23} class TestUnitTest(unittest.TestCase): def test_one(self): assert dict1 == dict2 $ python -m unittest F ===================================================================

                                                  pytest:フィクスチャ(fixture)の使い方 - Qiita
                                                • [Django+PostgreSQL+GitHub Actions] サービスコンテナを使ってdocker-composeを使わずにPytestを実行しよう - Qiita

                                                  [Django+PostgreSQL+GitHub Actions] サービスコンテナを使ってdocker-composeを使わずにPytestを実行しようDjangoMySQLpytestGitHubActionsPoetry 前提 GitHub Actionsの基本的な用語についてある程度理解している フレームワークはDjangoを使用 DBはPostgresを使用 Pytestを使用 Poetryを使用 PR内にカバレッジを表示させる方法についても説明 サービスコンテナとは ワークフロー中でアプリケーションをテストもしくはビルドするのに必要なサービスを提供するためのDockerコンテナです サービスコンテナを使うことでワークフロー内で例えばdocker-composeを使って自前でDBを作成せずにテストを実行することができます runner内のリソースは限られているのでGitHub側

                                                    [Django+PostgreSQL+GitHub Actions] サービスコンテナを使ってdocker-composeを使わずにPytestを実行しよう - Qiita
                                                  • [Python] 初中級者のためのpytest入門

                                                    この記事は過去に自分が携わっていた案件のコードを理解するために書いたものです。 前は公式の日本語ドキュメントがあったんですが、迷宮に迷い込んだようです(404) ちなみに英語ドキュメントは普通にあるので読める人はそっちを読んだほうがいいです。 pytest: helps you write better programs — pytest documentationhttps://docs.pytest.org/en/latest/ 以下のようにインストールします。 info2021年09月に以下のバージョンで確認しながら大幅に加筆・訂正を行いました。pytest 6.2.5Python 3.9.6テストランナーとしてのpytestpytestは簡単に始められます。フレームワークに依存していなければテストケースを置き換えなくても実行するだけでOKです。 手始めに以下のファイルを作成します。

                                                      [Python] 初中級者のためのpytest入門
                                                    • [GitHub Actions]actions/cache&pipenv&pytestの組み合わせを正常動作するまで検証&修正した記録 | DevelopersIO

                                                      はじめに GitHub ActionsのWorkflowにて、pipenvを使いつつcache化させて効率よく動かす、ということをされている方は多いと思われます。私自身、担当プロジェクトにて効率よく動かしている、と思っていました。一応キャッシュはしていたものの、キャッシュを無視して毎回インストールするフローになっていたのは不覚の極みでした。 正常にキャッシュされているかどうかの見極めと、pipenvとactions/cacheを併用したpytestの動作例をまとめました。 正常にキャッシュされているかどうかを見極める セルフホストしていない限りは、ActionsのWorkflowログが確認の全てです。 キャッシュキーが意図した通りになっているか確認する actions/cacheにて生成を想定するキーは恐らく次のような構成でしょう。 Linux-pipenv-8772fa24c3defb2

                                                        [GitHub Actions]actions/cache&pipenv&pytestの組み合わせを正常動作するまで検証&修正した記録 | DevelopersIO
                                                      • FastAPI+SQLAlchemyをpytestでテスト

                                                        FastAPIでSQLAlchemyを利用するサンプルコードが公式ドキュメントにあります。 サンプルコードのmain.pyの重要な部分を抜粋するとこんな感じです。 app = FastAPI() # Dependency def get_db(): db = SessionLocal() try: yield db finally: db.close() @app.get("/users/", response_model=List[schemas.User]) def read_users(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): users = crud.get_users(db, skip=skip, limit=limit) return users SessionLocal()で作成したセッシ

                                                          FastAPI+SQLAlchemyをpytestでテスト
                                                        • [Python] pytest でモックを使う方法(pytest-mock)

                                                          [Python] pytest でモックを使う方法(pytest-mock) 2021.02.12 Python pytest, pytest-mock, Python, テスト pytest でモックを利用する pytest を利用してテストをコーディングする場合にモックを利用したい場合、pytest-mock というライブラリを使うと便利です。 pytest-mock は mock パッケージの薄いラッパーを提供します。 この記事では pytest-mock を使ったいろいろなモックの使い方を紹介します。 pytest の基本的な使い方は以下の記事にまとめてます。 [Pytest] pytest 入門、テストコードを書く方法 │ Web備忘録 モックを利用するとテスト用で一時的に処理を差し替えてくれます。モック化した箇所は対象のテスト中においてのみモックとして扱われ、それ以外のテストで

                                                            [Python] pytest でモックを使う方法(pytest-mock)
                                                          • pytest daemon: 10X Local Test Iteration Speed

                                                            At Discord, we utilize a Python monolith to power our API, from sending messages to managing Nitro subscriptions. To support this, we use pytest to write and run unit tests. Over the last 8 years, the time it takes to run a single test has continuously grown until it reached a point where it takes a whopping 13 seconds to run a single test. To clarify, even if the test ends up doing absolutely not

                                                              pytest daemon: 10X Local Test Iteration Speed
                                                            • Python3とpytestを使ってCircleCIに入門する (書きかけ) - たのしい駆動開発

                                                              初心者でも分かりやすい関数とテスト、そしてCircleCIの設定ファイルで解説していきます。 今回のファイル構成はこのようになっています。 . ├── requirements.txt ├── src │   └── a.py └── tests ├── __init__.py └── test_a.py まずはじめに、簡単に数値計算する関数を書きます。 src/a.py def b(a, b): return a * b 次に、テストをする関数を書きます。 test_a.py from src.a import b def test_b(): assert 2 == b(1, 2) ようやくお待ちかね、CIrcleCIの設定ファイルを書きましょう。コメントアウトで簡単な説明を書いたので、わかりやすいかと思います。 これが今回の設定ファイルです。 詳しくはCircleCIのサイトを見てくだ

                                                                Python3とpytestを使ってCircleCIに入門する (書きかけ) - たのしい駆動開発
                                                              • pytest, mock, patchについて整理したい

                                                                pytest、unittest.mock.patchらへんでハマっていたのでメモ。 整理したかったこと 同じ機能で、書き方が何種類もあること 引数の使い分け 注: このページでは同じものを別の名前で指しているかもしれないです(例:package, module, library という単語は同じものを指すことがある) テストモジュールについて unittest ... Pythonビルトインのテストpackage pytest ... 3rd partyのテストpackage。unittestよりよく使われていて主流らしい unittestをそのまま使える importしなくても使える(pytest.xxxを使わないとき) mock について オブジェクト(何でも)を自由に置き換えるもの unittest.mock ... unittestのモジュール pytest-mock ... py

                                                                  pytest, mock, patchについて整理したい
                                                                • pytestのすぐに使えるカバレッジ計測 - Qiita

                                                                  カバレッジを計測するには pytestのテストコードを作ったら、カバレッジを確認しましょう。 pytestのpluginでカバレッジ計測の便利なライブラリがあります。 名前は、「pytest-cov」です。 pytest-covの最新情報はこちら参照。 https://pypi.org/project/pytest-cov/ 上記サイトにオプションの指定例がいろいろ書いてあります。 知っておくと便利なオプションを選んで、やりたいこと別にコマンドと実行例を記載します。 pytest-covのインストール前に、pytestのインストールから動かし方まではこちらです。 https://qiita.com/kg1/items/4e2cae18e9bd39f014d4 pytest-covインストール pipコマンドで簡単に導入できます。 フォルダ構成、プログラム 例として以下のフォルダ構成、プログ

                                                                    pytestのすぐに使えるカバレッジ計測 - Qiita
                                                                  • pytestとmotoを使ってPynamoDBの単体テストを実行してみる | DevelopersIO

                                                                    はじめに データアナリティクス事業本部のkobayashiです。 PythonでDynamoDBを操作する際にboto3を使っても良いのですが、Object-Document Mapper(ODM)として大変使いやすいPynamoDBがあります。今回はPynamoDBで記述したコードの単体テストをモックフレームワークのmotoを使って行ってみたいと思います。 Welcome to PynamoDB’s documentation! — PynamoDB 5.5.1 documentation getmoto/moto: A library that allows you to easily mock out tests based on AWS infrastructure. PynamoDBとは PynamoDBはDynamoDB用のODMになり、DynamoDBの 様々な処理を簡単にに

                                                                      pytestとmotoを使ってPynamoDBの単体テストを実行してみる | DevelopersIO
                                                                    • testcontainers-python: pytest 実行時に使い捨て可能な LocalStack を起動する - kakakakakku blog

                                                                      Testcontainers を使うと,テストコードを実行するときに必要になるデータベース・キャッシュ・キューなどの依存関係をコード上で管理できて,実行後にはコンテナを自動的に消してくれるという使い捨て可能な仕組みを簡単に作れる❗️Testcontainers のサイトに載っている「Test dependencies as code」という表現はピッタリだと思う👌 testcontainers.com Testcontainers は Java / Go / .NET / Rust など多くの言語をサポートしているけど,今回は Python 用の testcontainers-python を試してみた.検証に使ったコードを紹介しつつ,簡単にまとめておく✍ また Testcontainers Cloud もあったりする🌩 testcontainers.com 前提 今回は以下の前提で試

                                                                        testcontainers-python: pytest 実行時に使い捨て可能な LocalStack を起動する - kakakakakku blog
                                                                      • pytestでflaskのテストを実施 - Qiita

                                                                        概要 「Pythonでシフト作成ツールの作成」の連載の第2項です。 シフト作成ツールを作りつつ、pythonでのツール作成を学んでいきます。 1:flaskでhello world的なことを 2:pytestでflaskのテストを実施 flaskにて作成したソースのテストをpytestを学びながら書いていきます。 前提条件 以下のソースのテストを考えます。 @app.route('/', methods=['GET', 'POST']) def login(): if request.method == 'POST': session.clear() if request.form['login_id'] != 'admin' and request.form['password'] != 'pass': flash('Not logged in') return render_templ

                                                                          pytestでflaskのテストを実施 - Qiita
                                                                        • Getting Started With Property-Based Testing in Python With Hypothesis and Pytest - Semaphore

                                                                          I picked up most of my soft/hardware troubleshooting skills in the US Army. A decade of Java development drove me to operations, scaling infrastructure to cope with the thundering herd. Engineering coach and CTO of Teleclinic. This tutorial will be your gentle guide to property-based testing. Property-based testing is a testing philosophy; a way of approaching testing, much like unit testing is a

                                                                            Getting Started With Property-Based Testing in Python With Hypothesis and Pytest - Semaphore
                                                                          • ざっくり分かるpytestのfixture - Qiita

                                                                            pytestにおけるfixtureとは テストの事前処理、事後処理を記載できるpytestの機能です。 SetUp(事前処理), TearDown(事後処理)を1つの関数で書けます。 setup_class, setup_functionのように、スコープごとに違う関数を呼ぶ必要がありません。 fixtureからfixtureを呼び出すことができ、処理を階層的に記述できます。 SetUp, TearDownじゃダメなの? ダメかと言われるとダメじゃありません。チーム内でスタイルが統一されている方が大事です。 機能面だけで言うと、pytestにおいてはfixtureを利用する方がリッチではあります。 ブラウザ操作自動化ツールであるPlaywright for Pythonはfixtureを利用しています。 上記を採用する場合、可読性と保守性の観点からfixtureに統一することを勧めます。

                                                                              ざっくり分かるpytestのfixture - Qiita
                                                                            • Pytest Plugins to Love ❤️

                                                                              Plugins can modify and extend a lot of aspects of pylint, including how the output is done. This screenshot of a pytest run with pytest-sugar was taken by Martin Thoma. Pytest is extensible and has plenty of plugins. You don’t need to use any of them, but you might find some very useful. I love this because you have an easy time to get started with unit testing, while still finding amazing stuff w

                                                                                Pytest Plugins to Love ❤️
                                                                              • pytest-mock使ってハマったこと - Uzabase for Engineers

                                                                                こんにちは。 SPEEDA開発チームの掛川です。 現在、私が参画しているプロジェクトではPythonを使ってサービスの開発を行なっています。 私自身、Pythonを書くのは今回が初めてなのですが、 テストを書く際にハマったことについて記事にしていきたいと思います。 環境といろいろ ・環境 OS Mac OS X 10.14.5 python 3.7.3 ・ライブラリ pytest 5.1.2 pytest-mock 1.11.1 私が今まで参画していたプロジェクトでは、モックライブラリはMockKを使用していた(使用言語はKotlinでした)のですが 「MockitoやMockKと同じように表現したい時にpytestではどうやって書いたらいいの?」 と疑問に思いハマったことの中から今回は以下の2つの内容にフォーカスしていきます。 classメソッドをモックしたい時 引数に応じて返す値を変え

                                                                                  pytest-mock使ってハマったこと - Uzabase for Engineers
                                                                                • pytestでflaskの単体テストをする - Qiita

                                                                                  はじめに 開発のテストではライブラリやフレームワークを使用して自動化するのが一般的になっています。そこでpytestを使用してflaskの単体テストを自動化しようとしましたが、シンプルな例が見つけられなかったのでシンプルな例と簡単な説明をまとめました。 環境 python:3.6.5 flask:1.0.2 pytest:5.3.5 インストール pip install pytestでインストールするだけです。 pytestで自動化するのに必要なもの pytestで単体テストを自動化するために必要なものは、テスト対象のソース(テストされる開発物)とテスト方法を記載したソースが必要になります。テスト方法のソースは、テスト対象の引数と関数の結果を与えてどのように比較するかを記載しています。 簡単な関数の単体テスト自動化 flaskの単体テストの自動化の前に、簡単な関数を通じてpytestの使い

                                                                                    pytestでflaskの単体テストをする - Qiita