2

私はPythonプロジェクトからDebianパッケージを構築しましたが、これは多数のDebianパッケージが機能することに依存しています。Pythonプロジェクトには、ユニットテストと統合テストも含まれています(py.testを使用)。

私のプロジェクトはいくつかのDebianパッケージに依存しているので、これらのパッケージをテスト環境内にインストールする必要があり、モジュールがこれらのパッケージと一緒に正しく動作することを確認する必要があります(これらのライブラリの更新時にモジュールが壊れないようにしたい) )。

これらのテスト環境の構成と実行をMakefileに入れたいと思います。これらのテストは、開発者ワークステーションとJenkins搭載の統合サーバーの両方で実行可能である必要があります。

私のパッケージの完全な統合テストに対する私の現在のアプローチは次のとおりです。

  1. pBuilder環境を作成する
  2. Debian-controlfileからpBuilderenvに依存関係をインストールします
  3. このpBuilder環境内でpy.testを起動し、virtualenv / toxを使用してさまざまなPythonインタープリターバージョンをテストします
  4. テスト環境からテスト結果を収集します(py.testは、Jenkinsが簡単に公開できるJUnitのような優れたテスト出力を生成できます)

残念ながら、私はこのことを実現する方法、特に3)を実現する方法についてのヒントを見つけることができませんでした。私が見つけたすべてのドキュメントは、テストの実行ではなく、パッケージのビルドに関するものでした。

誰かが私にそのようなテストセットアップを構築する方法のヒントを教えてもらえますか?また、自分が目指していることをやるのが理にかなっているのか知りたいです。他の人は(Python)モジュールと他のDebianパッケージの統合をどのようにテストしますか?

4

2 に答える 2

5

パッケージを作成しながらテストスイートを実行したいとします。

1)checkパッケージのMakefileにターゲットを追加します。これにより、すべてのvirtualenv/toxマジックを含む実際のテストスイートが実行されます。例えば:

.PHONY: check
check:
    ./runtests.sh

スクリプトでインタプリタチェックを実行しruntests.shてからpy.testを起動します

2)debian/rules実際にテストを実行するように構成します

2a)CDBSを使用する場合は、debian/rulesの先頭に次の行を追加します

DEB_MAKE_CHECK_TARGET = check

2b)debhelperを使用する場合、dh_auto_testスクリプトは自動的にテストを実行する必要があります(Makefileにターゲットある場合)check

2c)カスタムがある場合は、debian/rulesビルドが成功した後に「チェック」ターゲットを実行します

于 2012-04-24T07:54:03.573 に答える
1

他の人は(Python)モジュールと他のDebianパッケージの統合をどのようにテストしますか?

1つのオプションは、テストを実行するための完全に新しいシステムをプロビジョニングすることです。つまり、仮想マシンまたは安価なクラウドサーバーで実行します。

pBuilderに行き詰まっている場合は、次のコマンドを使用して任意のスクリプトを呼び出すことができます。pbuilder execute

http://packaging.ubuntu.com/html/chroots.htmlにあるその他の役立つヒント

于 2012-04-29T23:34:52.783 に答える