これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド py.test です。
プログラム:
NAME
pytest - pytestの使用法
CALLING PY.テスト スルー パイソン -M PY.テスト
バージョン 2.0 の新機能。
Python-2.5 以降を使用している場合は、Python インタープリターを介してテストを呼び出すことができます。
コマンドライン:
python -m pytest [...]
これは、コマンド ライン スクリプトを呼び出すことと同じです。 py.test [...] 直接。
取得 ヘルプ ON バージョン、 オプション 名前、 ENVIRONMENT 変数
py.test --version # pytest のインポート元を示します
py.test --fixtures # 利用可能な組み込み関数の引数を表示
py.test -h | --help # コマンドラインと設定ファイルのオプションのヘルプを表示します
停止しています AFTER 、 最初 (また N) 失敗
最初 (N 回) の失敗後にテスト プロセスを停止するには:
py.test -x # 最初の失敗後に停止します
py.test --maxfail=2 # XNUMX 回失敗したら停止
指定する TESTS / 選択 TESTS
いくつかのテスト実行オプション:
py.test test_mod.py # モジュール内でテストを実行する
py.test somepath # somepath 以下のすべてのテストを実行します
py.test -k stringexpr # に一致する名前のテストのみを実行します
# 「文字列式」、例: 「メソッドではなく MyClass」
# TestMyClass.test_something を選択します
# ただし、TestMyClass.test_method_simple ではありません
py.test test_mod.py::test_func # 「ノード ID」に一致するテストのみを実行します。
# 例: 「test_mod.py::test_func」は選択します
# test_mod.py 内の test_func のみ
py.test test_mod.py::TestClass::test_method # 単一のメソッドを実行します
# 単一クラス
「pkg」をインポートし、そのファイルシステムの場所を使用してテストを検索して実行します。
py.test --pyargs pkg # pypkg のディレクトリの下にあるすべてのテストを実行します
変更 パイソン トレースバック 印刷
トレースバック印刷を変更する例:
py.test --showlocals # トレースバックでローカル変数を表示します
py.test -l # ローカル変数を表示 (ショートカット)
py.test --tb=long # デフォルトの有益なトレースバック形式
py.test --tb=native # Python 標準ライブラリの書式設定
py.test --tb=short # より短いトレースバック形式
py.test --tb=line # 失敗ごとに XNUMX 行のみ
ドロップ に PDB (パイソン デバッガ) ON 失敗
Python には、と呼ばれる組み込みの Python デバッガが付属しています。 PDB. パイテスト にドロップすることができます
PDB コマンドラインオプションを使用してプロンプトを表示します。
py.test --pdb
これにより、失敗するたびに Python デバッガーが起動されます。 多くの場合、単にやりたいだけかもしれません
これは、最初に失敗したテストで特定の失敗状況を理解するためのものです。
py.test -x --pdb # 最初の失敗時に PDB にドロップし、テスト セッションを終了します
py.test --pdb --maxfail=3 # 最初の XNUMX つの失敗については PDB にドロップします
障害が発生した場合、例外情報は次の場所に保存されることに注意してください。 sys.last_value,
sys.last_type と sys.last_traceback。 インタラクティブな使用では、これにより、
任意のデバッグ ツールを使用した事後デバッグ。 手動で例外にアクセスすることもできます
情報、例えば:
>>> システムをインポート
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError('アサート結果 == "ok"',)
SETTING A ブレークポイント / AKA SET_TRACE()
ブレークポイントを設定して入力する場合は、 pdb.set_trace() ヘルパーを使用できます。
pytestをインポートする
def test_function():
...
pytest.set_trace() # PDB デバッガーとトレースを呼び出します
pytest バージョン 2.0.0 より前では、次のように入力することしかできませんでした。 PDB キャプチャを無効にした場合のトレース
コマンドライン上で py.test -s。 それ以降のバージョンでは、pytest は自動的にその機能を無効にします。
入力時の出力キャプチャ PDB トレース:
· 他のテストの出力キャプチャには影響しません。
· すでにキャプチャされており、そのように処理される以前のテスト出力。
· 同じテスト内で生成されたその後の出力はキャプチャされず、代わりに取得されます。
に直接送信 sys.stdout。 これは、テスト出力が発生する場合にも当てはまります。
インタラクティブを終了した後 PDB トレースセッションを終了し、定期テストを続行します
実行されます。
pytest バージョン 2.4.0 以降、ネイティブ Python も使用できます import pdb;pdb.set_trace()
電話して入る PDB を使用せずにトレースする pytest.set_trace() ラッパーまたは
pytest の出力キャプチャを明示的に無効にします。 py.test -s.
プロファイリング テスト 実行 DURATION
最も遅い 10 件のテスト期間のリストを取得するには、次のようにします。
py.test --durations=10
作成 JUNITXML FORMAT ファイル
で読み取れる結果ファイルを作成するには ハドソン またはその他の継続的インテグレーション
サーバーの場合は、次の呼び出しを使用します。
py.test --junitxml=パス
XML ファイルを作成するには path.
レコード_xml_プロパティ
バージョン 2.8 の新機能。
テスト用に追加情報をログに記録したい場合は、 レコード_xml_プロパティ
フィクスチャ:
def test_function(record_xml_property):
Record_xml_property("example_key", 1)
0をアサート
これにより追加のプロパティが追加されます 例キー = "1" 生成されたものに テストケース タグ:
警告:
これは実験的な機能であり、そのインターフェースは別のものに置き換えられる可能性があります。
将来のバージョンでは強力かつ一般的になります。 機能自体は維持されますが、
しかし。
現時点では、 pytest-xdist プラグイン。
また、この機能を使用するとスキーマ検証が失敗することにも注意してください。 これ
一部の CI サーバーで使用すると問題が発生する可能性があります。
作成 結果ログ FORMAT ファイル
機械可読なプレーンテキストの結果ファイルを作成するには、次のコマンドを実行します。
py.test --resultlog=パス
でコンテンツを見てください。 path 位置。 このようなファイルは、たとえば、 PyPy テスト
Web ページには、複数のリビジョンにわたるテスト結果が表示されます。
送信 テスト レポート に オンラインによる ペーストビン サービス
作成 a URL for 各 test 失敗:
py.test --pastebin=失敗しました
これにより、テスト実行情報がリモートの貼り付けサービスに送信され、それぞれの URL が提供されます。
失敗。 通常どおりテストを選択することも、たとえば追加することもできます -x XNUMX つだけ送信したい場合
特別な失敗。
作成 a URL for a 全体 test セッション ログ:
py.test --pastebin=all
現在はにのみ貼り付けています http://bpaste.net サービスが実装されています。
無効化 PLUGINS
呼び出し時に特定のプラグインの読み込みを無効にするには、 -p オプションと一緒に
プレフィックス NO:.
例: プラグインのロードを無効にする ドクターテスト、 doctest の実行を担当します
テキスト ファイルからテストを実行するには、次のように py.test を呼び出します。
py.test -p no:doctest
CALLING PY.テスト FROM パイソン CODE
バージョン 2.0 の新機能。
呼び出すことができます パイテスト Python コードから直接:
pytest.main()
これは、コマンドラインから「py.test」を呼び出すかのように動作します。 上がらないよ
SystemExitを ただし、代わりに終了コードを返します。 オプションと引数を渡すことができます。
pytest.main(['-x', 'mytestdir'])
または文字列を渡します:
pytest.main("-x mytestdir")
追加のプラグインを指定して、 pytest.main:
# myinvoke.py の内容
pytestをインポートする
クラスMyPlugin:
def pytest_sessionfinish(self):
print("*** テスト実行レポート終了")
pytest.main("-qq", plugins=[MyPlugin()])
実行するとそれが表示されます マイプラグイン が追加され、そのフックが呼び出されました。
$ python myinvoke.py
*** テスト実行レポート完了
onworks.net サービスを使用してオンラインで py.test を使用する