問題タブ [nose]
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 - 鼻が __init__.py ファイルをインポートしないようにするにはどうすればよいですか?
ファイルでのみテストを実行するようにノーズテスト フレームワークに指示できtest_*.py
ますか?
実際にnosetests A
は、次のディレクトリ構造を使用します。
避けたい B をインポートします。
import numpy
これは、ユーザーがオプションの NumPy モジュールをインストールしている場合にのみ使用することを意図しているため、B モジュールが で始まるためです。ただし、NumPy をインストールしていないユーザーは、NumPy がオプションであってもB/__init__.py
必ず失敗するため、nosetests を処理したくありません。import numpy
これはどのように達成できますか?
python - 新しいクラスのインスタンスが初期化されていません
私はパッケージを書いていて、良い小さなプログラマーのようにテストを行っていますが、何が起こるかは次のとおりです。
この場合、は でtest_default_search_parts
失敗しAssertionError: ['a'] != []
、test_add_letter
合格します。ここで何が起こっているのかわかりません。書き直すと本当に奇妙になりますtest_default_search_parts
:
同じ障害が発生します。インスタンスの初期化で何が間違っていますか?
ああ、それが問題なら、私は鼻を使ってそれらを実行しています。
python - Pythonでモック関数に条件付き引数を提供する方法は?
私のプロジェクトは、Python の を使用して外部 API へのさまざまな呼び出しを行いますurllib2.urlopen
。単体テストに NoseTests を使用し、MiniMock を使用して への呼び出しをモックアップしていますurllib2.urlopen
。
モックコード:
私は次のようにテストを実行しています:
もともと、呼び出されたときに壊れた XML ファイルを返す別のモック ファイルをインポートした別のモジュールで、例外をチェックするテストがありましたurlopen
。ただし、そのモック クラスをインポートすると、上記のクラスがオーバーライドされ、破損した XML が毎回使用されるため、すべてのテストが中断されます。
これは、例外テストモジュールが他のモジュールの後にロードされたため、そのインポートが最後に呼び出され、壊れた XML を返すモック関数が元のモック関数をオーバーライドしたためだと思います。
test_bar_exception が実行されたときに壊れた XML ファイルを使用して例外を発生させるようにモック コードに指示できるようにしたいと考えています。どうすればこれを行うことができますか?
php - 私は python に変換する php プログラマーです。単体テストの重要性 (または重要でないこと) を説明してください。私はphpでユニットテストをしたことがありません!
私は、堅実なソフトウェア開発について学んでいる段階で、「ペダルからメダルへのコードを光の速度で実行し、実際の計画なしに良い結果を祈る」アプローチは機能しないことに気づきました。
私は、古い (そして確かにそれほど優れていない) 方法を堅実な実践に置き換えようとしています。私はこれまで単体テストを使用したことがありませんでしたが、ピラミッドを学習しようとしていることに加えて (完全なドキュメントのおかげでうまくいっています)、単体テストが一般的にどのように役立つかを確認しようとしています (また、将来的には統合テストを追加します) 、回帰テストなど)。私はこのイントロをnosetest http://ivory.idyll.org/articles/nose-intro.htmlに読みました.(軽率ではありませんが)単体テストを使用して正規表現をテストできることがわかりました.if a=1; b=1; now does a == b
. 現時点で確認できるのはこれだけです。このためのフレームワークは必要ありません。正規表現テスターと常識を使用して「テスト」できます。単体テストを使用して 2 つの変数が等しいかどうかを確認する場合、変数を作成して何かに等しく設定するたびにテストを作成する必要はありませんか? 記事の例は、恣意的なものに思えます。
私の心は、単体テストの利点を学ぶことにオープンですが、単体テストの実用的なアプリケーションは何かを知りたいです。
結論: 私はこれまで単体テストを使用したことがないので、なぜ私が間違っているのか教えてください。テストを使用する必要があります。
乾杯!!
python - テストがどこにあるかをdjango-noseに伝えるにはどうすればよいですか?
テストディレクトリにDjangoアプリケーションのテストがあります。
__init__.py
Djangoテストランナーでは、アプリケーションのテストディレクトリのファイルにsuite()関数を配置する必要があります。この関数は、$ pythonmanage.pytestを実行したときに実行されるテストケースを返します。
django-noseをインストールしました。django-noseでテストを実行しようとすると、0個のテストが実行されます。
テストモジュールを直接指すと、テストが実行されます。
django-noseのテストランナーが私のテストを見つけられないのはなぜですか?私は何をしなければなりませんか?
python - Pythonは、カバレッジとノーズの下で実行されている場合、サブモジュールを認識しません
Coverage.pyを使用して一連のテストを実行すると、インポートエラーが発生します。ここで、noseは基礎となるテストランナーです。代わりにPythonで実行すると、テストは正常に実行されます。
これはパスエラーではないようです。代わりに、「カバレッジ実行」を実行してテストを実行すると、「nova」モジュールのサブモジュールが表示されないようです。失敗していたメソッドに次のコードを追加することで、これを見つけました。
これをとして実行するとpython run_tests.py
、次の出力が表示されます。
ただし、これをとして実行するとcoverage run run_tests.py
、次の出力が表示されます。
いずれの場合も同じ場所でnovaモジュールを見つけているようですが、カバレッジを指定して実行した場合、Pythonはほとんどのサブモジュール(auth、compute、...)consoleを認識しません。
noseにカバレッジプラグインを使用する場合、この問題は発生しないことに注意してください。ただし、この特定のケースでは、プラグインを使用したくありません。
python - Pythonのノーズテスト(実際にはエラーはMoxからのものです)は、エラーを1行に1文字(行番号付きで!)出力します。
最近、ユニットテストにNoseを使い始めました。エラーが発生すると、エラー情報が非常に奇妙な方法で出力されることがあることを除けば、かなり良いです。1行に1文字に分割され、行番号とともに出力されます。誰かがこれを修正する方法を知っていますか?
1346行も同様です。
編集:
自分の質問に8時間答えられないので、見つけたソリューションで編集しています。
Aaron Digullaが指摘しているように、問題は鼻ではなく、Mox(オブジェクトのモックに使用しています)にあります。
この行をmox.pyのExpectedMethodCallsErrorのstrメソッドの先頭に追加すると、問題(またはとにかくこの症状)が修正されます。
python - 不要な親ディレクトリを含むNosetest
nosetestsを特定のディレクトリに制限しようとしていますが、テストの実行中に、ターゲットにしているdirの親ディレクトリが含まれているため、エラーが発生します。
テスト実行からの出力の重要な要素は次のとおりです。
で使用buildout
していpbp.recipe.noserunner
ます。関連する/projects/myproject/buildout.cfg
セクションは次のとおりです。
where=myproject/specs
また、インポートを制限するためのパラメーターの1つとして設定しようとしましdefaults
たが、それでも喜びはありません。
私がどこで間違っているのかについて何か提案はありますか?
編集:
--exclude
親ディレクトリを試しましたが、喜びはありません。
windows - Windowsでnosetestsが閉じないようにする
私はWindows7を実行していて、nosetestsを実行しようとしています。
インストールされており、正常に実行できます。ただし、実行すると(cmdウィンドウで「nosetests」と入力して)、出力を含む新しいcmdウィンドウが開きますが、このウィンドウは、何が表示される前に閉じます。それは言います。結果が表示されないようにするにはどうすればよいですか?
あなたが気づかなかった場合に備えて、私は本当のn00bです。