問題タブ [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.

0 投票する
2 に答える
1583 参照

python - Pythonで内部関数を単体テストできますか?

書く方法やのための方法はありunittestsますdoctestsinnerfunc

0 投票する
2 に答える
1413 参照

python - doctest (python) で (from X import Y) のモック Y

別のモジュールに存在し、次のようにインポートされる関数のモックを使用して doctest を作成しようとしています

foomodule.py:

これは失敗します。

import をimport foomoduleに変更し、どこでもfoomodule.foo を使用すると、機能します。

しかし、上記の方法でインポートされた関数をモックするための解決策はありますか?

0 投票する
1 に答える
960 参照

python - なぜノーズは644パーミッションしかないファイルでテストを見つけるのですか?

今日、私は Python 2.6 を使用して、Ubuntu 9.10 でノーズを使用して一連の doctest を実行しました。

なんてこと?そのファイルにテストがありましたが、なぜうまくいかなかったのですか?

許可を 644 に変更しました。

777 に戻す:

何故ですか?644 を使用すると、ファイルを編集することさえできなくなります。

0 投票する
7 に答える
3593 参照

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です。

ご意見をお寄せいただければ幸いです。

ありがとうございました。

ブライアン

0 投票する
2 に答える
1614 参照

python - doctest ローカル定義関数

ローカルで定義された関数をドキュメントテストする方法はありますか? 私が望む例として

テストに合格しないこと。それでも、モジュール全体で foo2 をグローバルにしたくありません...

0 投票する
2 に答える
1192 参照

pydev - Pydev から doctest を実行していますか?

簡単な方法はありますか、またはNoseのような外部ツールを使用する必要がありますか?

0 投票する
7 に答える
1719 参照

python - doctestを使用した警告のテスト

doctestsを使用して、特定の警告の存在をテストしたいと思います。たとえば、次のモジュールがあるとします。

python -m doctest testdocs.pyクラスでdoctestを実行するために実行し、警告が出力されることを確認すると、次のようになります。

警告は印刷されているようですが、doctestによってキャプチャまたは通知されていません。sys.stderrこれは、の代わりに警告が出力されるためだと思いますsys.stdoutsys.stderr = sys.stdoutしかし、これは、モジュールの最後で言った場合でも発生します。

では、doctestsを使用して警告をテストする方法はありますか?ドキュメントやGoogle検索で、この方法についての言及は見つかりません。

0 投票する
5 に答える
3602 参照

python - doctestでフロートの結果をテストするには?

いくつかの浮動小数点計算を行うプログラムを開発しています。関数 (float を提供する) を doctest でテストする方法はありますか?

0 投票する
3 に答える
4949 参照

python - Python での ImportError のモック

私はこれをほぼ2時間試していますが、運がありません。

次のようなモジュールがあります。

コードの後半:

何か案は?

編集:

アレックスの提案はうまくいかないようです:

テストを実行する場合:

ただし、Python インタラクティブ コンソールから同じコードを実行すると機能します。

より多くの編集:

モジュールのこの部分に固有のすべてのテストをzope.testing含むテストファイルを使用しています。shorturl.txt最初に、利用可能なモジュールをインポートしてzope.component、通常の使用法を実証およびテストします。パッケージがないzope.*場合はエッジ ケースと見なされるため、後でテストします。したがって、どういうわけか、使用不可にreload()した後、モジュールに移動する必要があります。zope.*

これまでのところ、tempdir でtempfile.mktempdir()and emptyzope/__init__.pyzope/component/__init__.pyfiles を使用してから、tempdir を に挿入しsys.path[0]、古いzope.*パッケージを から削除しようとさえしましたsys.modules

どちらも機能しませんでした。

さらに編集:

その間、私はこれを試しました:

そして、テスト スイートの名前空間 (= のすべてのインポート) ではうまく機能しますが、shorturl.txt私のメイン モジュールでは実行されませんao.shorturl。私がそれをしたときでさえありませんreload()。理由はありますか?

インポートするとzope.interfacesが発生するため、インポートしImportErrorた部分に到達せず、 ao.shorturl 名前空間に残ります。どうして?!zope.component

0 投票する
2 に答える
494 参照

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)

ここまで読んでいただきありがとうございます(ここを直接スキップした場合は、理解できます)