問題タブ [unittest2]

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 投票する
3 に答える
1113 参照

python - さまざまなPythonバージョンでunittest2機能をサポートするための最もPython的な方法は何ですか?

さまざまなPythonバージョンでunittestライブラリの最新機能を使用できるようにするための2つの方法を考えることができます。

また

これらのどれがよりPythonicですか?

0 投票する
4 に答える
1145 参照

django - Django 単体テスト - 不適切に構成されたエラー

モジュールのテストを作成しようとしています。私が実行すると:

メッセージが表示されます:

ユーザー、グループを作成し、アクセス許可を割り当てる BaseTest だけです。

どこに問題があるのでしょうか? サーバーは正常に動作し、構成は良好なようです。テストの設定を定義する必要がありますか?


Ok。私は何が問題だったのか知っていると思います:]私は他のモジュールに保存された権限を持つリストを持っていました。だから私は書いていましたfrom module.perms import perms(通常のpythonリスト)。そのpythonは、そのリストを他のモジュールから私のモジュールにインポートするだけではありません。そして、それが失敗の原因でした。

解決策: リスト定義の後のコードを次のように囲みます。

その後、すべてがうまく機能するはずです。

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

python - ノーズの下で輸入品の「早期返品」を行う方法は?

大規模なPythonプロジェクトの多数の単体テストをキュレートしています。テストの検出と実行にはnoseを使用します。特定の条件で実行すべきではないテストファイルがいくつかあります。たとえば、Windows(MacとLinuxのみ)で実行してはならないテストモジュールがあるかもしれません。

これが私が使用したいくつかの解決策です:

  1. Noseの優れた属性プラグインを使用して、テストメソッドまたはクラスに条件をマークします。
  2. テストメソッドまたはクラスでunittest.skipIf()を使用します
  3. たとえば、名前に含まれるファイルをスキップするには、 noseのパターン除外を使用します。windows

1と2についての私の不満は、これらがモジュールのインポートを強制することです。これは少なくとも時間の無駄であり、プラットフォームに依存するインポートがある場合はエラーを引き起こす可能性があります。#3はもろく、テストケースを読んだときにスキップされることがわかりにくいので、私は好きではありません。3つともテストとテストランナーの相互作用に過度に依存しているようです。テスト中のものが欲しいのですが。

テストモジュールの上部で次のようなことをしたいと思います。

PythonまたはNoseにモジュールの読み取りを停止するように指示するにはどうすればよいですか?ただし、エラーはありませんか?早期返品に相当する輸入品を探していると思います。

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

python - テストをグループ化するためにpyファイルにメタデータを追加する方法はありますか?

異なるファイルに次のテストケースがあるとしましょう

  • TestOne.py {タグ: One、Two}
  • TestTwo.py {タグ: 2}
  • TestThree.py {タグ: 3}

それぞれが unittest.TestCase を継承しています。これらのタグを検索してそれらのテストケースのみを実行するための main.py スクリプトを使用できるように、これらのファイルにメタデータ情報を埋め込む機能は Python にありますか?

例: {tags: Two} でテストケースを実行したい場合は、テストケース TestOne.py と TestTwo.py のみを実行する必要があります。

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

nose - Python で unittest を実行する方法が多すぎるために生じる混乱を解決する

私は、Python パッケージをテストする完全でクリーンな方法を実装しようとしています。これは、次の要件に適合するものです。

  • セットアップせずにクリーンなマシンでテストを実行する (virtualenv)
  • 複数のプラットフォームから結果を収集する
  • 複数の Python インタープリターから結果を収集する
  • コードカバレッジ(複数の実行結果を 1 つのレポートにマージ)
  • xml コード カバレッジ レポートを生成できるため、ビルド システムは時間の経過とともにこの変化を追跡できます。
  • プラットフォームに基づいて無効化テストを有効にできる
  • pep8 や autopep8 など、テストの前にいくつかのコマンドを実行します
  • テストを並行して実行します。

私はいくつかのアプローチを使用しましnose + pytesttox + pytest:pytest

主な問題は、どちらのアプローチを使用する方がよいかについて、明確な比較を見つけることができなかったことです。

誰かがこれらを説明し、これらの構成の使用例または制限をいくつか教えてもらえますか? ... いつどのアプローチを選択するかを明確にするためです。

最後に、これらのオプションが必要です。

  • quicktest- テストをローカルで実行します。各コミットの前に必ず実行してください
  • fulltest- 新しいリリースを作成する前に、利用可能なすべてのプラットフォームでそれらを実行する完全なテスト
0 投票する
0 に答える
2699 参照

python - Python 単体テスト: setUpClass() と tearDownClass() を引数付きで使用する方法

python unittest の setUpClass メソッドと TeaDownClass メソッドを引数付きで使用したいと思います。より具体的には、ここに私が今やっていることがあります:

それは機能しますが、キャッシュ管理を Validation のサブクラスにラップして、グローバル変数を使用したり、毎回 setUpClass と tearDownClass を記述したりすることを避けたいと考えています。

もちろん、setUpClass() と tearDownClass() は引数を受け入れないため、これは機能しません。解決策はありますか?

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

python - Pyunit の実行テストとビルド レポート

1 つのファイル test_file.py の下にテストのコレクションがあります。次のようにコンソールから通常どおり実行できます。

これは、テスト ケースが失敗したときに小さなトレースバックを出力します。だから私が正確にする必要があるのはです。

  1. テストを定期的に実行します。たとえば、crontabで実行します(これを行う方法は知っています)
  2. 毎回の実行後に電子メール レポートを送信します。これを行うには、すべてのテストが正常に終了したかどうか、一部のテストが失敗した場合に備えて、通常の pyunit 出力と同様に、どのテストが失敗し、エラーが何であったかを知る必要があります。

上で述べたように、cron 部分の実行方法とテストの実行方法は知っていますが、項目 2 を達成するには何が必要で、何ができるでしょうか?

すべてのテストを手動で実行し、結果を収集してから電子メールを送信するスクリプトでしょうか?

どうもありがとうございました !

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

python - "python setup.py test" から unittest discover を実行するには?

python setup.py testに相当するものを実行する方法を見つけようとしていますpython -m unittest discover。run_tests.py スクリプトを使用したくありません。また、外部テスト ツール (noseや などpy.test) も使用したくありません。ソリューションが python 2.7 でのみ機能する場合は問題ありません。

では、config のand/orフィールドにsetup.py何かを追加する必要があると思いますが、正しく機能する組み合わせが見つからないようです:test_suitetest_loader

unittestこれはpython 2.7に組み込まれているだけで可能ですか?

参考までに、私のプロジェクト構造は次のようになります。

更新:これは可能unittest2ですが、のみを使用して同等のものを見つけたいunittest

https://pypi.python.org/pypi/unittest2から

unittest2 には、非常に基本的な setuptools と互換性のあるテスト コレクターが含まれています。setup.py で test_suite = 'unittest2.collector' を指定します。これにより、setup.py を含むディレクトリのデフォルト パラメータを使用してテスト ディスカバリが開始されるため、例として最も役立つでしょう (unittest2/collector.py を参照)。

今のところ、私は というスクリプトを使用しているだけですrun_tests.pyが、python setup.py test.

これが私run_tests.pyが削除したいと思っているものです:

0 投票する
0 に答える
54 参照

python - 異なるプラットフォームで異なるテスト パッケージを使用する方法

私は C++ のバックグラウンドを持っており、Python の知識は非常に限られています。次の状況で助けが必要です。

バックグラウンド:

SF大規模なシステムに統合されたソフトウェアがありますS。このシステムは、テスト フレームワークとしてSpythonを使用します (微調整されています)。unittest2具体的には、および別のカスタマイズされた例外処理クラスAを継承する クラス を実装します。すべてのテストは、に基づいて実装されます。システムは Linux でのみ使用できます。ただし、このソフトウェアはスタンドアロン アプリケーションとしても使用されます。これは、他のプラットフォームでテストする場合にのみ使用する必要があり、その場合、クラスは使用できません。 unittest2BASSFunittest2A

質問:
異なるプラットフォームに異なるテスト パッケージを適用するにはどうすればよいですか?

私の考えられる解決策:
このスレッドに基づいてラッパー クラスを実装することを考えています: Create a wrapper class to call a pre and post function around existing functions? . その投稿からの回答を以下に示します。

ただし、クラスのメンバー関数のラッパーを扱っているため、上記のスレッドはあまり関係がないと思いますが、さまざまなテスト パッケージをラップするラッパー クラスが必要です。Pythonでこれを行うことは可能ですか? Python 2.7 参考までに使用しています。

どんな意見でも大歓迎です。自分自身を明確にするのに役立つ場合は、喜んで追加情報を追加します。ありがとうございました。