問題タブ [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.
matlab - 名前空間汚染なしで MATLAB コード フラグメントを実行する
私は、MATLAB 用doctest
の Python のテスト ランナーのバージョンを作成しています (部分的に動作します...)。これを機能させるには、m-file ヘルプにある人々の例のコードを実行する必要があります。変数がある行から次の行に引き継がれるようにします。
テストを実行するために、テストを検索する REGEX への一致をループします。一致ごとにevalc
、例を示し、結果が一致することを確認します。
問題はI
、代入が からeval
外側のスコープに引き継がれるため、例の の定義がloop のループ変数を壊してしまったことです。新しいスコープ/ワークスペースを作成できるものを探しましたがevalin
、呼び出し元のワークスペースしか再利用できません。これはさらに悪いことです。サブ関数またはsave
/を呼び出すオプションも検討しましload
たが、どこにも行きませんでしたが、十分に考えていなかったのかもしれません。
したがって、すべての変数に名前を付けて、名前空間の問題に対処する必要があると思います...変数名の競合を回避するための戦略doctest__system__*
について別のアイデアがない限り?
python - doctest 文字列内にテスト コードまたはデータを埋め込む
ファイル内のいくつかの doctest でテスト データや関数を共有したいと考えています。それらを外部ファイルまたはテスト対象のファイルのコード内に配置せずにこれを行う方法はありますか?
アップデート
それでdoctest
、モジュールを一度コピーしてから、各docstringのコピーをコピーすると思いますか?
いずれにせよ、モジュールを各 docstring にインポートすることは、面倒ではありますが、使用できるようです。
ドキュメント化されていない可能性のある方法で後続のテストにインポートされる、またはインポートされない実際のモジュール データを誤って踏みにじるのを避けるために、これには別の名前空間を使用することをお勧めします。
この名前空間を含めるために、モジュールを動的に作成することが (理論的には) 可能であることがわかりました。しかし、しばらく前に尋ねた質問から、それを行う方法についての指示はまだ得られていません。どんな情報でも大歓迎です!(適切な質問への回答として)
いずれにせよ、変更を後続のドキュメント文字列の名前空間に直接反映させたいと思います。したがって、私の最初の質問は依然として有効であり、それを修飾子として使用しています。
python - PyDev doctest でブレークポイントを設定する
PyDev (つまり eclipse) を使用して、doctests にブレークポイントを設定することは可能ですか? 一見できるように見えますが、ブレークポイントがまったく機能しないことがわかりました。
質問にいくつかのコードを入れて明確にするために、私が持っていると言います
そして、doctest の funct() 呼び出しにブレークポイントを設定しました。それをしてもいいですか?
PS: 私はできることを知っています
doctest でプロンプトを表示するには、そのような行を挿入しない方がよいでしょう。
python - メインラインでdoctestを使用するPython
こんにちは私はそれが可能かどうか疑問に思っていました、もしそうならどうやって?doctest docsで説明されているように関数をテストする代わりに、メインラインからdoctestまたは同様のことを行うため。
これは、学生のスクリプトをdocstringに対してテストできることの一部です。私は、両方を強みとして入力できるこのコードのスニペットを見つけました。
それは多かれ少なかれ行いますが、それはほとんど理想的ではないようです、どちらかの点での提案
python - 不適切なインポートによる失敗を表示せずに、フォルダー内のすべての python モジュールに対してすべての doctests を実行します
doctest をモジュールに統合し始めました。(やったー!) これらはスクリプトとして開始されたファイルである傾向があり、現在は CLI アプリを使用するいくつかの関数になっている__name__=='__main__'
ため、テストの実行をそこに置きたくありません。試してみnosetests --with-doctest
ましたが、見たくない多くの失敗が発生しました。これは、テストの検出中に、doctests を含まないが、このシステムにインストールしていないものをインポートする必要があるか、特別な環境で実行する必要があるインポート モジュールであるためです。 python のインストール。すべての doctest だけを実行する方法はありますか?
「import doctest; doctest.testfile(currentFilename)」を実行して現在のモジュールで doctests を実行するための vim のホットキーと、すべてのテストを実行する別のスクリプトを検討しました。他の doctest ユーザーは何をしますか? または、doctest 以外のものを使用する必要がありますか?
python - python doctest: サンプルの実行を停止し、結果のコンテキストをシェルで使用する
ディレクティブのポイントでいくつかのコマンドをインタラクティブに実行してから例を続行できるようにするテストに入力できるディレクティブがあったと思いますが、それが何であったか覚えていません...
python - Pythondoctestの例の失敗
これはおそらくばかげた質問です。
私はpythondoctestを試していますが、この例を実行しようとしています
で終わる
サンプルコードを含むソースファイルと同じフォルダに「example.txt」を配置しましたが、次のエラーが発生します。
doctestモジュールが指定されたファイルを検索している場所をどうにかして教えたり設定したりできますか?
python - Doctests:出力を抑制する/無視する方法は?
次の(ナンセンスな)Pythonモジュールのdoctestは失敗します:
これは、XXXとマークされた行の後の出力が<__main__.A object at ...>
(によって返されるappend_to
)であるためです。もちろん、この出力をXXXとマークされた行の直後に置くこともできますが、私の場合、これは実際にテストされるもの、つまり関数の副作用から読者の注意をそらしますappend_to
。では、どうすればその出力を抑制できますか、またはどうすれば無視できますか。私はそれを試しました:
ただし、これによりValueError: line 4 of the docstring for __main__ has inconsistent leading whitespace: ' ...'
。
doctestは文書化を目的としており、モジュールがどのように使用されるかを読者に示すため、私がしたくないのは、出力を抑制するappend_to(L)
ような行に変更することです。_ = append_to(L)
(文書化されている場合はappend_to
、関数のようではなく、ステートメントのように使用する必要があります。書く_ = append_to(L)
と、読者はこれから逸脱します。)
c# - Pythonのdoctest機能に相当するC#がないのはなぜですか?
一部の人々にユニットテストを紹介するのに良い方法のようです。
python - Doctestと相対インポート
相対インポートでdoctestを使用するのに問題があります。簡単な解決策は、相対的なインポートを取り除くことです。他にありますか?
2つのファイルを含むexampleというパッケージがあるとします。
example/__init__.py
example / A.py
私が今試みたら
その後、エラーが発生します