問題タブ [conftest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - argparse モジュールで使用されるのと同じ構文を使用してカスタム CLI 引数を pytest に追加する方法はありますか?
TLDR:
私はpytestのcliを拡張したいのですが、独自のAPIを使用してそれを行う方法を知っていますが、argparseモジュールを直接(または少なくともその構文)を使用して行う方法があるかどうか疑問に思っていました.追加したい cli 引数は、プログラムの別の部分の標準 argparse モジュールの構文で記述されています。
完全な質問:
私は約 20 の CLI (コマンド ライン インターフェイス) 引数/フラグ/オプションを持っています。これらは、標準の python モジュールで、pytest を呼び出してテストを実行するときに受け入れられるようにしたいと考えています。
argparse ドキュメントの例に示すような構文を使用して argparse モジュールを使用して、必要なすべての CLI 引数を受け入れる標準の python モジュールのセットアップが既にあります。
ここconftest.py
で説明されているような構文を使用して、pytest で使用するカスタムの追加の CLI 引数を作成できることも知っています。
argparse と pytest を使用してカスタム CLI 引数を初期化/作成する場合、私が認識しているわずかな違いが 1 つだけあります。Argparse:
パイテスト:
後で引数とそれぞれの値を解析/アクセスするには、もう少し違いがあります。pytest の 20 個のカスタム CLI 引数すべてを設定するために、ほぼ同じコードをもう一度繰り返す必要はありません。pytest は現在、舞台裏で argparse を使用していると思います。そのため、コードを再利用できる良い方法があるかどうか疑問に思っています。 pytest のカスタム CLI 引数を設定するための argparse モジュールを使用して CLI 引数を設定する方法を書きました。また、解析/アクセス コードを再利用する方法があれば、それはすばらしいことです。
argparse モジュールをconftest.py
直接使用して、標準の python モジュールと同じ方法ですべてを実行しようとしましたが、pytest では正しく動作しませんでした。また、独自のカスタム CLI 引数を pytest に追加する魅力レポート モジュールも使用しています。上記の方法を使用すると、魅力カスタム CLI 引数が認識されなくなりました。おそらく、既存の argparse CLI 引数のセットを再定義/上書きしていたためです。 .
おそらく、pytest が使用する基になる argparse.ArgumentParser インスタンスにアクセスする方法はありますか?
また、pytest パーサーをラップし、基になる名前が変更された関数を単に呼び出す標準の argparse 関数と同じ名前の追加関数を追加するラッパー クラスを作成することも考えましたが、それを実装する方法が正確にはわかりません。後で引数を解析する問題には対処しません。
おそらく関連するリンク: pytest Config クラスのドキュメント pytest パーサー クラスのドキュメント
python-3.x - コマンドラインと同じように VSCode で単一のテストを実行するにはどうすればよいですか?
Visual Studio Code 1.39.2 と PyTest 6 を Python 3.8 で使用しています。私はこのpytest.iniファイルを持っています
そしてその下には、これが conftest.py ファイルの先頭にあります...
ただし、Visual Studio Code のみで、テストを実行しようとすると、エディターの [テストの実行] または [テストのデバッグ] リンクをクリックして...
テストは上記の最後の行で死ぬ...
以下のエラーで....
コマンドラインでテストを単独で実行すると、これは発生しません...
VS Code はプラグインを別の方法でロードしますか? または、コマンド ラインのように機能させるためにクリアする必要があるキャッシュ データがありますか?
open-policy-agent - conftest での opa http.send の使用
conftestを使用する場合のデータのインポートと組み込みの opa 関数の実行について質問があります。以下のコード サンプルでは、2 つのモジュールabc
とmain
. 重要なのは、それが動作中abc
の https 呼び出しであることだけです。
repl から作業すると、コードは意図したとおりに実行され、オンザフライでデータを取得し、そのリストにあるavailable
かどうかを確認stuff
します。opa run -b .
次に、ヒットdata.abc
すると https 呼び出しが実行されます。つまり、パケットがインターフェイスから出て、必要なリストを含む応答本文が取り込まれていることがわかりますdeny
。を実行しても同じことが起こりますopa test . -v
。
ただし、実行中conftest verify -p .
または conftest test abc/main.json -p .
実行http.send
されない、つまり、パケットが予想されるホストのインターフェイスから離れることはありません。
https 呼び出しを使用する代わりに静的リストを使用することもできますが、リストがいつ更新されるかは制御できません。これは conftest の予期された/意図された制限ですか? これらの関数を実行してデータ ドキュメントを作成できますか? また、正しくインポートしていますか?