英語フランス語スペイン語

OnWorksファビコン

py.test - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで py.test を実行します。

これは、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_typesys.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 を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad