タグ付けされた質問 「pytest」

Pythonによるシンプルで強力なボイラープレートテスト。`pytest`でタグ付けされた質問には、` python`タグも追加してください。

7
読み取り専用プロパティをモックでモックする方法は?
読み取り専用プロパティをモックでどのようにモックしますか? 私は試した: setattr(obj.__class__, 'property_to_be_mocked', mock.Mock()) しかし、問題は、それがクラスのすべてのインスタンスに適用されることです...これは私のテストを破ります。 他に何かアイデアはありますか?オブジェクト全体をモックしたくはありません。この特定のプロパティだけをモックします。


6
pytestを使用してテストを無効にするにはどうすればよいですか?
たくさんのテストがあるとしましょう: def test_func_one(): ... def test_func_two(): ... def test_func_three(): ... pytestそのテストだけを実行できないようにするために関数に追加できるデコレータなどはありますか?結果は次のようになります... @pytest.disable() def test_func_one(): ... def test_func_two(): ... def test_func_three(): ...
88 python  testing  pytest 

3
pytestで単一ファイルをテストする方法
pytestで単一のファイルをどのようにテストしますか?ドキュメントには無視オプションしかなく、「このファイルのみをテストする」オプションはありませんでした。 setup.cfgideでさまざまなファイルテストを実行したいので、これはの代わりにコマンドラインで機能することが望ましいです。スイート全体に時間がかかりすぎます。
88 python  pytest 

1
鼻vspytest-私がどちらかを選ぶようにすべき(主観的な)違いは何ですか?[閉まっている]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前に閉鎖されました。 この質問を改善する 私はかなり大きな(マルチスレッドの)Pythonプロジェクトに取り組み始め、(ユニット)テストがたくさんあります。最も重要な問題は、アプリケーションの実行には、コンテキストマネージャーによって実装されるプリセット環境が必要なことです。これまで、このマネージャー内でテストを実行する単体テストランナーのパッチを適用したバージョンを使用しましたが、異なるテストモジュール間でコンテキストを切り替えることはできません。 noseとpytestはどちらも、多くの粒度でフィクスチャをサポートしているため、このようなことをサポートしています。そのため、noseまたはpytestへの切り替えを検討しています。これらのライブラリは両方とも「タグ付け」テストをサポートし、これらのタグ付けされたサブセットのみを実行します。これも私たちがやりたいことです。 私はnoseとpytestの両方のドキュメントを少し調べてきましたが、これらのライブラリの大部分は、名前が異なる場合や構文が少し異なる場合を除いて、基本的に同じ機能をサポートしています。また、利用可能なプラグインにいくつかの小さな違いがあることに気づきました(たとえば、noseにはマルチプロセスサポートがあり、pytestはそうではないようです) ですから、悪魔は細部にまでこだわっているようです。つまり、(少なくとも多くの場合)個人的な趣味であり、個人的な趣味に最も適したライブラリを使用する方がよいでしょう。 ですから、私たちのニーズに最適なライブラリ/コミュニティの組み合わせを選択するために、なぜ私が鼻やpytestを使うべきなのかという主観的な議論を求めたいと思います。
85 python  pytest  nose 


7
「pythonsetup.pytest」からunittestdiscoverを実行する方法は?
にpython setup.py test相当するものを実行する方法を理解しようとしていますpython -m unittest discover。run_tests.pyスクリプトを使用したくないし、外部テストツール(noseまたはなどpy.test)も使用したくない。ソリューションがPython2.7でのみ機能する場合は問題ありません。 で、configのフィールドやフィールドにsetup.py何かを追加する必要があると思いますが、正しく機能する組み合わせが見つからないようです。test_suitetest_loader config = { 'name': name, 'version': version, 'url': url, 'test_suite': '???', 'test_loader': '???', } これは、unittestPython 2.7に組み込まれているものだけを使用して可能ですか? 参考までに、私のプロジェクト構造は次のようになります。 project/ package/ __init__.py module.py tests/ __init__.py test_module.py run_tests.py <- I want to delete this setup.py 更新:これはで可能ですがunittest2、私はだけを使用して同等のものを見つけたいですunittest https://pypi.python.org/pypi/unittest2から unittest2には、非常に基本的なsetuptools互換のテストコレクターが含まれています。setup.pyでtest_suite = 'unittest2.collector'を指定します。これにより、setup.pyを含むディレクトリのデフォルトパラメータを使用してテスト検出が開始されるため、例として最も役立つ可能性があります(unittest2 / collector.pyを参照)。 今のところ、私はと呼ばれるスクリプトを使用していますrun_tests.pyが、を使用するソリューションに移行することでこれを取り除くことができると期待していますpython setup.py test。 ここだrun_tests.py、私は削除するために願っています: …

3
TypeError:attrib()が予期しないキーワード引数 'convert'を取得しました
このエラーは、を使用したCIサーバーでのpythonプロジェクトの自動テスト中に発生しましたpytest。私は使用していpytest==4.0.2ます。このエラーは発生し始めたばかりで、以前のパイプラインは正常に動作しているようです。 完全なエラー: File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory lambda p: Path(os.path.abspath(six.text_type(p))) TypeError: attrib() got an unexpected keyword argument 'convert'
55 python  pytest 

4
PythonでPyTestのassertステートメントの動作を変更することは可能ですか
私はPythonのassertステートメントを使用して、実際の動作と予想される動作を一致させています。エラーテストケースがある場合のように、これらを制御することはできません。アサーションエラーを制御し、アサートの失敗時にテストケースを中止するかどうかを定義したい。 また、アサーションエラーが発生した場合など、テストケースを一時停止してユーザーがいつでも再開できるようにすることもできます。 私はこれを行う方法がわかりません コード例、ここではpytestを使用しています import pytest def test_abc(): a = 10 assert a == 10, "some error message" Below is my expectation assertがassertionErrorをスローする場合、テストケースを一時停止するオプションが必要で、デバッグして後で再開できます。一時停止と再開には、tkinterモジュールを使用します。以下のようにアサート機能を作成します import tkinter import tkinter.messagebox top = tkinter.Tk() def _assertCustom(assert_statement, pause_on_fail = 0): #assert_statement will be something like: assert a == 10, "Some error" #pause_on_fail will be derived …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.