問題タブ [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 - doctest 使用時のインポート エラーの処理
Python でコーディングするときは、特定のサードパーティ製モジュールを使用せずに済ませなければならないことがあります。
例えば。私がユーザー認証を書いているとき、それはいくつかの方法で行うことができますが、そのうちの 1 つは LDAP を使用することです。ただし、ユーザーが LDAP 認証を使用したくない場合は、構成ファイルで別のオプションを選択できます。その場合、ldap モジュールをインストールする必要はありません。
通常、私はこれを次の方法で解決します。
ldap_auth モジュールのみに ldap モジュールをインポートします。個人的にはこれはとてもいいことだと思いますが、もちろん、doctests は ldap_auth を実行しようとすると ImportError を発生させます。
さて、ldap モジュールを ldap_auth にインポートしようとすることでそれをキャッチできることはわかっていますが、それは見栄えの良いコードを台無しにするだけです (「ldap_auth を auth としてインポートする」ビジネス全体を実行することの要点は、ImportErrors を回避することでした)。 .
この「パターン」を使用するときに doctests が ImportErrors を発生させないようにする、より洗練された方法はありますか?
乾杯、
トム
python - Python doctest は単体テストの必要性を取り除きますか?
私が参加しているプロジェクトの仲間の開発者は、doctest は単体テストと同じくらい優れており、コードの一部がdoctest されている場合、単体テストを行う必要はないと考えています。私はこれが事実であるとは思わない。doctests が単体テストの必要性を置き換えるという議論に賛成または反対する、堅実で理想的に引用された例を誰かが提供できますか?
ありがとう - ダニエル
編集: doctesting が単体テストに取って代わるべきではないことを示す参照を誰でも提供できますか?
python - Python:クラスにdoctestを使用する
関数だけでなく、クラスにPythonのdoctestの概念を使用することは可能ですか?
もしそうなら、どこにdoctestsを置くべきですか?クラスのdocstringに、またはコンストラクターのdocstringに?
明確にするために、私は次のようなものを探しています:
前もって感謝します、
アダム
python - doctestを使用してPythonプログラムにログインする
すべての印刷ステートメントにロガーモジュールを使用したいと思います。私はこれについて最初の50のトップグーグルリンクを見ました、そして彼らはdoctestがそれ自身のstdoutのコピーを使用することに同意しているようです。印刷が使用されている場合、ロガーが使用されている場合は機能し、ルートコンソールにログを記録します。誰かが私が組み合わせることができるコードスニペットで実際の例を示してもらえますか?doctestをテストするためにnoseを実行すると、テストの最後にログ出力が追加されるだけであり(スイッチを設定したと仮定)、それらはprintステートメントとして扱われないことに注意してください。
python - ユーザー入力を受け取って表示するDoctesting関数-Python(髪を引き裂く)
私は現在、Python(3.1)を使用して小さなアプリケーションを作成しています。そして、いい子のように、ドキュメントテストを行っています。しかし、私はドクテストできないように見える方法に出くわしました。が含まれてinput()
いるため、doctestの「期待する」部分に何を配置するかが完全にはわかりません。
私の問題を説明するためのサンプルコードは次のとおりです。
doctestsを実行すると、「Expecting」セクションを出力した直後にプログラムの実行が停止し、5つの数字が次々に入力されるのを待って(プロンプトなしで)、続行します。以下に示すように:
doctestのExpectingセクションに何を配置して、ユーザー入力を受け取って表示するメソッドをテストできるかはわかりません。だから私の質問は(最後に)、この関数は検証可能ですか?
python - pdbがdjangodoctestsで機能していません
そこで、次のファイル(testlib.py)を作成して、すべてのdoctestを(ネストされたプロジェクトディレクトリ全体で)__tests__
tests.pyのディクショナリに自動的にロードします。
クレジットが必要な場所にクレジットを与えるために、これの多くはここから来ました
私のtests.pyファイルには、次のコードがあります。
これらはすべて、すべてのファイルとサブディレクトリからdoctestをロードするのに非常にうまく機能します。問題は、pdb.set_trace()をどこかにインポートして呼び出すと、これがすべて表示されることです。
doctestは、出力自体をキャプチャして仲介しているようであり、テストの評価に出力を使用しています。したがって、テストの実行が完了すると、doctestの失敗レポート内のpdbシェルにいたときに出力されるべきすべてのものが表示されます。これは、doctest行内でpdb.set_trace()を呼び出すか、テスト対象の関数またはメソッド内で呼び出すかに関係なく発生します。
明らかに、これは大きな抵抗です。Doctestは素晴らしいですが、インタラクティブなpdbがないと、それらを修正するために検出している障害をデバッグすることはできません。
私の思考プロセスは、pdbの出力ストリームを、doctestによる出力のキャプチャを回避するものにリダイレクトすることですが、それを行うために必要な低レベルのioのものを理解するための助けが必要です。また、それが可能かどうかさえわかりませんし、doctestの内部に慣れていないため、どこから始めればよいのかわかりません。誰かがこれを成し遂げることができる提案、またはより良いいくつかのコードを持っていますか?
python - Python doctests / sphinx : スタイルガイド、それらを使用して読み取り可能なコードを作成する方法は?
私は doctests が大好きです。これは私が使用する唯一のテスト フレームワークです。なぜなら、書くのがとても速いからです。また、sphinx と一緒に使用すると、ほとんど労力をかけずに素晴らしいドキュメントを作成できます...
ただし、非常に多くの場合、次のようなことをしてしまいます。
つまり、すべてのテストとドキュメントの説明をモジュールの一番上に置いているので、実際のコードを見つけるには愚かにもスクロールする必要があり、これはかなり醜いです (私の意見では)。ただし、ソース コードを読みながら doctests を読むことができるはずなので、doctests はモジュールに残すべきだと思います。ここで私の質問があります: sphinx/doctests 愛好家の皆さん、コードの可読性が損なわれないように、どのように doctests を編成しますか? doctests や sphinx のスタイルガイドはありますか? スフィンクスを使用したドキュメント文字列の場合、Google またはスフィンクス スタイル ガイドなどを使用しますか?
python - Pythondoctestエラー
こんにちは私は最近、「コンピューター科学者のように考えてください:python v2ndエディションを学ぶ」を読んでいるPythonの実験を始めました。私は、doctestで問題を抱えています。私はWindows7マシンとEclipseIDEをpydevとともに使用しています。
私の質問は、以下のスクリプトを実行すると、以下のエラーが発生することです。上記のスクリプトはエラーメッセージの下にあります
testing - PythonのDoctestに似たMatlabツールはありますか?
私のPython開発では、doctest
両方が本当に役立ちました
- 単体テストの作成を煩わしさから解放し、
- 使用例をドキュメントと統合します。
私は疑問に思っていましたが、Matlabの世界でこのようなものはありますか?文字通りコードコメントをテストとして使用する必要はありませんが、これら2つの望ましい品質があれば、それは素晴らしいことです。
python - Pythonモジュールのユニットテストインフラストラクチャ
私はPythonモジュールを書いていますが、それを単体テストしたいと思います。私はPythonを初めて使用し、利用可能なオプションに多少戸惑っています。
現在、命令型ではなく宣言型が好きなので、テストをdoctestとして書きたいと思います(ただし、誤った情報があった場合は、この設定を無視してください)。ただし、これにはいくつかの疑問があります。
- テストはどこに置くべきですか?彼らがテストしているコードと同じファイル(またはdoctestsの場合はdocstrings)?それとも、それらを独自のディレクトリに分離する方がよいと考えられますか?
- モジュール全体のすべてのテストをコマンドラインから一度に実行するにはどうすればよいですか?
- テストスイートのコードカバレッジを報告するにはどうすればよいですか?
- Pythonでのユニットテストについて知っておくべき他のベストプラクティスはありますか?