問題タブ [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 - Run all Tests in Directory Using Nose
I need to be able to run all tests in the current directory by typing one line in the Linux shell. In some directories, this works fine. But in others, when I type "nosetests" no tests are run. The tests will run if I call for them individually but I need them to all run automatically. Here is one of the directories that won't work:
When I run "nosetests" in the parent directory, all tests in a certain subdirectory are run but no tests from /extwebserver or other subdirectories or the parent directory itself are run.
EDIT Here's the output:
python - スクレイピー単体テスト
Scrapy (スクリーン スクレーパー/Web クローラー) でいくつかの単体テストを実装したいと思います。プロジェクトは「スクレイピー クロール」コマンドで実行されるため、nose などで実行できます。スクレイピーはツイストの上に構築されているため、単体テスト フレームワークのトライアルを使用できますか? もしそうなら、どのように?それ以外の場合は、鼻を動かしたいと思います。
アップデート:
私はScrapy-Usersについて話してきましたが、「テスト コードでレスポンスを作成し、次にレスポンスでメソッドを呼び出し、[I] 出力で期待されるアイテム/リクエストを取得する」ことをアサートすることになっていると思います。私はこれを機能させることができないようです。
単体テスト テスト クラスとテストを作成できます。
- 応答オブジェクトを作成する
- 応答オブジェクトを使用してスパイダーの parse メソッドを呼び出してみてください
ただし、最終的にこのトレースバックが生成されます。理由についての洞察はありますか?
python - ノーズを遅いテストに失敗させる
テストの実行に一定時間 (たとえば 500 ミリ秒) よりも長い時間がかかる場合、テストが失敗するようにしたいと考えています。すでにこれを行うNose用のプラグインなどはありますか?
python - noseを実行しているときにdoctestファイルの場所を見つける方法は?
私はPythonnoseを使用して、サブディレクトリで一連のdoctestを実行しています。呼び出し元のスクリプトはnose.cmdです。
(doctestsは* .rstファイルにあります。)
ディレクトリ構造の例:
最初のファイル自体の内部のPythonコードで最初のファイルのパスを取得するにはどうすればよいですか?たとえば、mymod.rstでは通常sys.path
、__file__
パス\ module1 \に関する情報は提供されませんが、インポートにはそれが必要です。
もちろん、ディレクトリを含む最初の各ファイルに定数を導入することもできますが、それは私が好むものではありません。
python - app.yamlのログイン設定でgaeをテストするユニット
app.yamlファイルのログイン設定を使用するGoogleAppEngineアプリの単体テストを行っています。例えば、
テストベッド、ノーズ、ノーズゲー、ウェブテストを使用していますが、どれが重要かはわかりません。
私の問題は、app.yamlからのログイン設定がテスト中に無視されることです。したがって、ログインしているユーザーがいない場合は、
ログインページにリダイレクトされる代わりに、要求されたページを取得します。
app.yamlからログイン設定をテストする方法はありますか?
python - 適切なオブジェクトがノーズに返されることをテストする (Learn Python the Hard Way Ex 49)
私は Learn Python the Hard Way 2nd Ed に取り組んできましたが、素晴らしいものでした。私の質問は、演習 49 (http://learnpythonthehardway.org/book/ex49.html) に関するものです。これは、本に記載されているコードをカバーするノーズ ユニット テストの作成に関するものです。この機能をカバーするテストを作成しようとしています:
このテストを実行しようとしました:
しかし、2 つの Sentence オブジェクトがまったく同じオブジェクトではないため、エラーが返されます。
2 つのオブジェクトが同じであることを確認するには、nose をどのように使用すればよいですか?
python - 相互に構築されるノーズ単体テストを構築するにはどうすればよいですか?
例
次のような架空の API があるとします。
重要なポイントは、するためにdo_something()
は、登録してログインする必要があるということです.
以下は、非常に単純化された最初のパスの単体テスト スイートです。
問題
登録が失敗すると、すべてのテストが失敗し、実際の問題がどこにあるかがわかりにくくなります。すべてが壊れているように見えますが、実際に壊れているのは、重要な 1 つだけです。すべてのテストに精通していない限り、かつては重要だったものを見つけるのは困難です。
質問
依存するコア機能が失敗したときに後続のテストが実行されないように、単体テストをどのように構成しますか?
アイデア
ここに私が考えた可能な解決策があります。
- 各テストで失敗を手動で検出し、SkipTest を発生させます。- 動作しますが、多くの手作業でエラーが発生しやすい作業です。
- ジェネレーターを活用して、最初のテストが失敗したときに後続のテストを生成しないようにします。- これが実際に機能するかどうかはわかりません (以前に生成されたテストが失敗したことをどのように「知る」ことができるため)。
- テストをテスト クラスにグループ化します。たとえば、これらはすべて、ログインが必要な単体テストです。 - これが実際に私の問題に対処するかどうかはわかりません。同じように失敗も多いのではないですか?
python - ノーズを使用したテスト用の Python インポート - 現在のパッケージより上のモジュールをインポートするためのベスト プラクティスは何ですか
これはさまざまな形で頻繁に尋ねられる質問であり、「あなたはそれを正しくやっていない笑」という回答を得ることがよくあります。それは、人々 (私を含む) が実装として使用しようとしている常識的なシナリオがあり、解決策が明らかではないためです (以前に行ったことがない場合)。
「ボトルから飛び出す」という答えを受け入れます。
与えられた
tests_sut.py が始まる場所:
ルートディレクトリでノーズテストを実行すると、次のようになります。
通った道:
a) を使用して相対を行う
b) プロジェクトのルートを PYTHONPATH に追加します
c) を使用する
各テスト モジュールの開始時にインポートの前に .. パスを追加します。
d) することを忘れないでください
テストを実行する前に、プロジェクトでモジュールをサイト パッケージにインストールします。
したがって、要件は、プロジェクトにアクセスできるテスト パッケージ ルートの下にテストを配置することです。上記のそれぞれは、私には「自然」とは感じられず、問題があることが判明したか、あまりにも大変な作業のように思えます!
Javaではこれは機能しますが、基本的にビルドツール/ IDEの影響により、すべてのクラスがクラスパスに配置されます。おそらく問題は、Python からの「魔法」を期待していることですか? Flask webframework テストで指摘したように、オプション d) が優先されるようです。
いずれにせよ、好ましい解決策を推奨する以下のステートメントは、私自身の「不自然さ」の感覚を取り除くでしょう.
python - Pythonテストスクリプトでnoseにオプションを渡す
コマンドラインからノーズテストを実行するのではなく、MongoDBのローカルテストインスタンスへの接続など、すべてのテストにいくつかの設定を行うテストランナーを使用しています。noseのドキュメントには、コマンドラインまたはホームディレクトリにある構成ファイルを介してオプションを渡す方法のみが示されているようです。スクリプトを使用してテストを実行するときに--with-xunitなどのオプションを渡す方法はありますか?