ブラウザとNode.jsでネットワークリクエストをインターセプトするJavaScript APIモックライブラリ。テストや開発でモックレスポンスを使っても、アプリのコードを変更せずに実行できます。
kevin1024/vcrpy
テスト中のHTTP通信を記録して後から再生し、オフラインでも毎回安定して動作するテストを実現するPythonライブラリ。
- スター
- 3,023
- フォーク
- 448
- 未解決の Issue
- 32
- 最終コミット
- 3 日前
これは何?
VCR.pyはRubyのVCRライブラリをPythonに移植したものです。コンテキストマネージャーまたはデコレーターでテストやコードの実行箇所を囲むと、初回実行時に、対応ライブラリ経由で行われたすべてのHTTP通信がカセットと呼ばれる単一ファイルに記録されます。デフォルトではYAML形式でシリアライズされます。2回目以降はカセットを読み込み、一致するリクエストに対してネットワークにアクセスする代わりに、記録済みのレスポンスを返します。
これにより実際のサーバーへの依存がなくなり、テストをオフラインで実行でき、毎回同じ結果が得られるうえ、実行時間も短縮されます。リモートAPIに変更があった場合は、カセットを削除してテストを再実行すると、新しい挙動に基づいて通信が再記録されます。関連ライブラリのpytest-recordingは、VCR.pyを利用するためのpytest fixtureを提供します。
主な機能
- 01HTTPリクエストとレスポンスをデフォルトでYAML形式のカセットファイルに記録する
- 02記録済みのレスポンスを再生し、テスト中に実際のネットワーク通信が発生しないようにする
- 03テストコードを囲むコンテキストマネージャーまたはデコレーターとして使える
- 04オフラインで再現性の高いテスト実行に対応する
- 05pytest-recordingと組み合わせてpytest fixtureを利用できる
ユースケース
- ネットワーク接続や稼働中のステージングサーバーなしでAPIクライアントのテストを実行する
- 不安定な外部レスポンスを排除し、テストスイートの再現性を高める
- 記録済みのHTTP通信を再生してCIを高速化する
- リモートサービスの変更後に、記録済みのAPIレスポンスを更新する
収録されている特集
トピック
よくある質問
- vcrpy とは?
- テスト中のHTTP通信を記録して後から再生し、オフラインでも毎回安定して動作するテストを実現するPythonライブラリ。 VCR.pyはRubyのVCRライブラリをPythonに移植したものです。コンテキストマネージャーまたはデコレーターでテストやコードの実行箇所を囲むと、初回実行時に、対応ライブラリ経由で行われたすべてのHTTP通信がカセットと呼ばれる単一ファイルに記録されます。デフォルトではYAML形式でシリアライズされます。2回目以降はカセットを読み込み、一致するリクエストに対してネットワークにアクセスする代わりに、記録済みのレスポンスを返します。
- vcrpy は無料で使えますか?ライセンスは?
- vcrpy は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- vcrpy は今もメンテナンスされていますか?
- 活発にメンテナンス中。vcrpy の最終コミットは 2026年11月3日 です。
- vcrpy は何に使えますか?
- ネットワーク接続や稼働中のステージングサーバーなしでAPIクライアントのテストを実行する 不安定な外部レスポンスを排除し、テストスイートの再現性を高める 記録済みのHTTP通信を再生してCIを高速化する リモートサービスの変更後に、記録済みのAPIレスポンスを更新する
- vcrpy はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/kevin1024/vcrpy
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
1.8万+18 今週645TypeScriptMIT更新 18 時間前
Jestは、アサーション、モック、スナップショットテスト、対話型ウォッチモードを備えたJavaScriptテストフレームワークです。
4.5万+1 今週6714TypeScriptMIT更新 4 日前
GoogleTestは、xUnit形式のテスト、豊富なアサーション、GoogleMockを提供するGoogle製のC++テスト・モックフレームワークです。
4万+4 今週1.1万C++BSD-3-Clause更新 7 日前
標準のgo testランナーで動作する、アサーション、モック、テストスイートを備えたGo向けテストツールキットです。
2.6万+8 今週1874GoMIT活発にメンテナンス更新 4 日前