Vedro はプラグイン システムを通じて強力な拡張性を提供し、さまざまなプロジェクトやチーム間で共有できる堅牢で再利用可能なソリューションを作成できます。しかし、単にコードベースを実験したり、コンセプトのプロトタイプを作成したり、小さな調整を追加したりしているだけの場合はどうなるでしょうか?完全なプラグインを作成するのはやりすぎのように感じるかもしれません。そこで vedro フックが登場します。
vedro-hooks は、さまざまな Vedro イベントにカスタム フックをアタッチできる軽量ライブラリです。テストを実行する前にモック サーバーを起動する場合でも、エンドツーエンド テスト用にブラウザを起動する場合でも、カスタム ログを設定する場合でも、vedro-hooks を使用すると、最小限の定型文で機能を挿入できます。
実用的な例
スイート内の遅いテストを特定したいとします。実行に 1 秒以上かかるテストを「遅い」と定義しましょう。従来は、このためにカスタム プラグインを作成する必要がありました。それは次のようになります:
from vedro.core import Dispatcher, Plugin, PluginConfig from vedro.events import ScenarioFailedEvent, ScenarioPassedEvent class SlowTestPlugin(Plugin): def subscribe(self, dispatcher: Dispatcher): dispatcher.listen(ScenarioPassedEvent, self.on_scenario_end) dispatcher.listen(ScenarioFailedEvent, self.on_scenario_end) def on_scenario_end(self, event: ScenarioPassedEvent | ScenarioFailedEvent): elapsed = event.scenario_result.elapsed if elapsed > 1.0: event.scenario_result.add_extra_details("⚠️ Slow test!") class SlowTestPluginConfig(PluginConfig): plugin = SlowTestPlugin
このアプローチは機能しますが、本格的なプラグインを作成するには、より多くのセットアップと追加の定型文が必要です。再利用可能なソリューションには最適ですが、簡単に実験するには面倒に感じる可能性があります。
フックを使用して簡素化する
vedro-hook を使用すると、わずか数行のコードで同じ機能を実現できます。
from vedro_hooks import on_scenario_passed, on_scenario_failed @on_scenario_passed @on_scenario_failed def highlight_slow_tests(event): elapsed = event.scenario_result.elapsed if elapsed > 1.0: event.scenario_result.add_extra_details("⚠️ Slow test!")
このコードは、デコレーターを使用して、シナリオが成功または失敗したときに呼び出される関数を登録します。経過時間をチェックし、シナリオに 1 秒以上かかった場合は詳細を追加します。
Scenarios * ✔ retrieve user info (0.52s) ✔ retrieve user repos (1.02s) |> ⚠️ Slow test! # 2 scenarios, 2 passed, 0 failed, 0 skipped (1.54s)
フックの管理: 欠点と解決策
この方法でフックを使用する場合の欠点の 1 つは、プロジェクト内のどこからでもフックを登録できるため、後で追跡するのが難しくなる可能性があることです。対照的に、Vedro のプラグインは vedro.cfg.py ファイルに登録され、すべてのプラグイン設定の一元的な場所を提供します。
コードベース全体でフックが登録されることによるマイナス面を軽減するために、vedro-hooks は --hooks-show コマンドライン引数を提供します。有効にすると、テスト プロセスの完了後に、登録されたすべてのフックの概要とそのソースの場所が表示されます。これは、どのフックがアクティブであるかをデバッグおよび確認するのに役立ちます。
Scenarios * ✔ retrieve user repos # [vedro-hooks] Hooks: # - 'highlight_slow_tests' (ScenarioFailedEvent) vedro.cfg.py:26 # - 'highlight_slow_tests' (ScenarioPassedEvent) vedro.cfg.py:26 # 1 scenario, 1 passed, 0 failed, 0 skipped (0.55s)
--hooks-show は便利ですが、デバッグ中に忘れずに使用する必要があります。プラグイン設定の明確さと一貫性を維持するために、フックを vedro.cfg.py などの中央の場所に登録することがベスト プラクティスです。
結論
vedro-hooks は、カスタム プラグインを作成するオーバーヘッドなしで Vedro テストを強化できる素晴らしいツールです。機能を拡張するための迅速で集中的なソリューションが必要な場合に威力を発揮します。これを賢く使用し、構成を整理しておくことで、シンプルさと保守性の両方の長所を享受できます。
以上がビードロフックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

pythonusesahybridmodelofcompilation andtertation:1)thepythoninterpretercompilessourcodeodeplatform-indopent bytecode.2)thepythonvirtualmachine(pvm)thenexecuteTesthisbytecode、balancingeaseoputhswithporformance。

pythonisbothintersedand compiled.1)it'scompiledtobytecode forportabalityacrossplatforms.2)bytecodeisthenは解釈され、開発を許可します。

loopsareideal whenyouwhenyouknumberofiterationsinadvance、foreleloopsarebetterforsituationsは、loopsaremoreedilaConditionismetを使用します

henthenumber ofiterationsisknown advanceの場合、dopendonacondition.1)forloopsareideal foriterating over for -for -for -saredaverseversives likelistorarrays.2)whileopsaresupasiable forsaresutable forscenarioswheretheloopcontinupcontinuspificcond

pythonisnotpurelyLepted; itusesahybridapproachofbytecodecodecodecodecodecodedruntimerttation.1)pythoncompilessourcodeintobytecode、whodythepythonvirtualmachine(pvm).2)

ToconcatenateListsinpythothesheElements、使用:1)Operatortokeepduplicates、2)asettoremoveduplicates、or3)listcomplunting for controloverduplicates、各メトドハスディフェルフェルフェントパフォーマンスアンドソーダーインプリテーション。

pythonisantertedlanguage、useaseofuseandflexibility-butfactingporformantationationsincriticalapplications.1)解釈されたlikepythonexecuteline-by-lineを解釈します

Useforloopswhenthenumberofiterationsisknowninadvance、andwhiloopswheniterationsdependonacondition.1)forloopsareidealforsecenceslikelistoranges.2)


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
