問題タブ [doctest]
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 - Pythonで内部関数を単体テストできますか?
書く方法やのための方法はありunittests
ますdoctests
かinnerfunc
?
python - doctest (python) で (from X import Y) のモック Y
別のモジュールに存在し、次のようにインポートされる関数のモックを使用して doctest を作成しようとしています
foomodule.py:
これは失敗します。
import をimport foomoduleに変更し、どこでもfoomodule.foo を使用すると、機能します。
しかし、上記の方法でインポートされた関数をモックするための解決策はありますか?
python - なぜノーズは644パーミッションしかないファイルでテストを見つけるのですか?
今日、私は Python 2.6 を使用して、Ubuntu 9.10 でノーズを使用して一連の doctest を実行しました。
なんてこと?そのファイルにテストがありましたが、なぜうまくいかなかったのですか?
許可を 644 に変更しました。
777 に戻す:
何故ですか?644 を使用すると、ファイルを編集することさえできなくなります。
python - views.py の Django doctests
テストに関するDjango 1.4 のドキュメントには次のように記載されています。
特定の Django アプリケーションについて、テスト ランナーは次の 2 つの場所で doctest を探します。
models.py
ファイル。モジュールレベルの doctest や個々のモデルの doctest を定義できます。アプリケーションレベルの doctest をモジュールの docstring に入れ、モデルレベルの doctest をモデルの docstring に入れるのが一般的です。
tests.py
アプリケーション ディレクトリ (models.py を保持するディレクトリ) で呼び出されるファイル。このファイルは、必ずしもモデルに関連していない、書きたいすべての doctest のフックです。
好奇心から、Django のテストランナーが の doctest に限定されている理由を知りたいのですmodels.py
が、より実際には、実行時にテストランナーの doctest を (たとえば)views.py
および他のモジュールを含めるように拡張する方法を知りたいmanage.py test
です。
ご意見をお寄せいただければ幸いです。
ありがとうございました。
ブライアン
python - doctest ローカル定義関数
ローカルで定義された関数をドキュメントテストする方法はありますか? 私が望む例として
テストに合格しないこと。それでも、モジュール全体で foo2 をグローバルにしたくありません...
pydev - Pydev から doctest を実行していますか?
簡単な方法はありますか、またはNoseのような外部ツールを使用する必要がありますか?
python - doctestを使用した警告のテスト
doctestsを使用して、特定の警告の存在をテストしたいと思います。たとえば、次のモジュールがあるとします。
python -m doctest testdocs.py
クラスでdoctestを実行するために実行し、警告が出力されることを確認すると、次のようになります。
警告は印刷されているようですが、doctestによってキャプチャまたは通知されていません。sys.stderr
これは、の代わりに警告が出力されるためだと思いますsys.stdout
。sys.stderr = sys.stdout
しかし、これは、モジュールの最後で言った場合でも発生します。
では、doctestsを使用して警告をテストする方法はありますか?ドキュメントやGoogle検索で、この方法についての言及は見つかりません。
python - doctestでフロートの結果をテストするには?
いくつかの浮動小数点計算を行うプログラムを開発しています。関数 (float を提供する) を doctest でテストする方法はありますか?
python - Python での ImportError のモック
私はこれをほぼ2時間試していますが、運がありません。
次のようなモジュールがあります。
コードの後半:
何か案は?
編集:
アレックスの提案はうまくいかないようです:
テストを実行する場合:
ただし、Python インタラクティブ コンソールから同じコードを実行すると機能します。
より多くの編集:
モジュールのこの部分に固有のすべてのテストをzope.testing
含むテストファイルを使用しています。shorturl.txt
最初に、利用可能なモジュールをインポートしてzope.component
、通常の使用法を実証およびテストします。パッケージがないzope.*
場合はエッジ ケースと見なされるため、後でテストします。したがって、どういうわけか、使用不可にreload()
した後、モジュールに移動する必要があります。zope.*
これまでのところ、tempdir でtempfile.mktempdir()
and emptyzope/__init__.py
とzope/component/__init__.py
files を使用してから、tempdir を に挿入しsys.path[0]
、古いzope.*
パッケージを から削除しようとさえしましたsys.modules
。
どちらも機能しませんでした。
さらに編集:
その間、私はこれを試しました:
そして、テスト スイートの名前空間 (= のすべてのインポート) ではうまく機能しますが、shorturl.txt
私のメイン モジュールでは実行されませんao.shorturl
。私がそれをしたときでさえありませんreload()
。理由はありますか?
インポートするとzope.interfaces
が発生するため、インポートしImportError
た部分に到達せず、 ao.shorturl 名前空間に残ります。どうして?!zope.component
python - (偶発的な)エスケープ文字を含む文字列を渡すと、生の文字列であっても文字が失われます
文字列を生の文字列としてエンコードしたにもかかわらず、テスト入力文字列の1つにエスケープ文字のように扱われるバックスラッシュがあるため、失敗するpythondoctestの関数があります。
私のdoctestは次のようになります:
また、todo仕様のバリエーションに続いて、1行からtodoテキストを抽出することを目的とした関数は、次のようになります。
そして、と呼ばれる正規表現は次のtodo_match_obj
とおりです。
私のipythonシェルとの簡単な会話は私に与えます:
そして、doctestの実装がstdoutを使用する場合に備えて(私はチェックしていません、申し訳ありません):
私の正規表現-fooはどの基準でも高くはなく、ここで何かが欠けている可能性があることに気づきました。
編集:Alex Martellisの回答に続いて、どの正規表現が実際に爆破されたものと一致するかについての提案が必要r"""//\todo fix me"""
です。私はもともと宿題をするように誰かに頼んだのではないことを知っています、そしてそれが私の質問に本当に答えたので(または私の恐れを確認したので)私はアレックスの答えを受け入れます。しかし、私はここで私の問題に対する良い解決策に賛成することを約束します:)
編集編集:参考までに、kodosプロジェクトにバグが報告されています:バグ#437633
Python 2.6.4を使用しています(r264:75706、2009年12月7日、18:45:15)
ここまで読んでいただきありがとうございます(ここを直接スキップした場合は、理解できます)