3

Python および Scala パッケージのライブラリと、Bourne、Python、Perl の実行可能スクリプトを含むプロジェクトがあります。ライブラリには十分なテスト カバレッジがありますが、スクリプトに関するテストはありません。

現在のテスト環境では、Jenkins、Python、virtualenv、nose、Scala、および sbt を使用しています。

Jenkins にスクリプトのテストを組み込む標準/一般的な方法はありますか?


編集: Python のシェル スクリプトの単体テストのような単純なものを期待しています。

assertEquals expected.txt commandline
assertError commandline --bogus
assertStatus 11 commandline baddata.in
4

3 に答える 3

4

shunit2 を見ましたか: https://github.com/kward/shunit2

Bourne、bash、または ksh スクリプトでテスト可能なシェル スクリプトを作成できます。

説明しているものにどのように統合できるかはわかりませんが、他の単体テストスイートと同様の出力を生成します。

于 2012-04-08T19:11:14.447 に答える
1

これがどの程度「標準」なのかはわかりませんが、TDD を本当に実践しているのであれば、スクリプトも TDD で開発する必要があります。TDD テストを Jenkins に接続する方法は、使用している TDD フレームワークによって異なります。たとえば、Jenkins が読み取ることができる JUnit レポートを生成したり、テストが単に失敗ステータスを返したりすることができます。

于 2012-03-06T16:32:47.567 に答える
0

スクリプトに別のプロジェクトが必要な場合は、「system-qa」などの新しいジェンキンス プロジェクトを作成することをお勧めします。

これは、python プロジェクトのダウンストリーム プロジェクトであり、python プロジェクトと社内プロジェクトに依存しています。

依存関係の解決/公開テクノロジを使用していた場合、 apache ivy http://ant.apache.org/ivy/と言って、これらの既存のプロジェクトがコードのパッケージ化されたバージョンを公開する場合 (.tar.gz のように単純なおそらく)、次に system-qa プロジェクトは、python パッケージと社内プロジェクト パッケージの両方の依存関係を (再び ivy を使用して) 宣言し、ivy を使用してダウンロードし、抽出/インストールし、テストを実行して終了することができます。

要約すると、system-qa プロジェクトのビルド スクリプトは、依存関係を取得し、それらの依存関係に対してテストを実行し、おそらく junit xml のような標準化された出力テスト形式を発行する責任があります (ただし、少なくとも 0 または非 0 を返し、Jenkins の手がかりになります)構築がどのように進んだかについて)。

これは技術的に正しい解決策だと思いますが、多くの作業も必要です。それだけの価値がある場合は、ジャッジメントコールが必要です。

于 2012-03-06T21:20:10.673 に答える