8

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

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

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

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

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

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

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

1 に答える 1

1

py.test はすべてのニーズを完全にカバーします。これは、nose のような他のテスト ランナーと比較して優れています。

  • 依存性注入によるフィクスチャ - テスト設定のための複雑な oop の必要性を排除
  • 多くの便利なプラグインを備えたシンプルだが強力なプラグイン システム - pytest-xdist のようなプラグインを使用すると、Windows を含むすべてのプラットフォームで必要に応じてテストできます。
  • パラメーター化により、宣言パラメーターを使用したテストに、一度だけ実行する複数のアプローチを使用できます
  • 単純な assert ステートメントと複雑な Java のような構文の使用 .assertEquals ( http://pytest.org/latest/assert.html )
  • だんだん
于 2015-03-05T22:57:17.370 に答える