web-dev-qa-db-ja.com

ユニット/コンポーネントテストに合格したときにビルドターボールをマークするためのベストプラクティス

現在のビルドプロセス中に、いくつかのPython tarball内のコードと一緒にコンパイルおよびアーカイブされるCコードがあります。そのtarballはコミットを表します(リリースコミットである場合とそうでない場合があります)。

Jenkinsフローの一部では、コードがテストされていますが、一部はテストされていません。ただし、ユニットテストまたはコンポーネントテストに合格したかどうかに関係なく、特定の各tarballに関する情報は、Jenkinsジョブにのみ残り、ジョブの終了後に削除されます。

既存のtarballを見ると、テストに合格したかどうかはわかりません。また、この特定のビルドフローとそのジョブの結果についてJenkinsにクエリを実行する方法を知る方法はありません。

テスト結果をマークして保存するために私が考えることができる最良のオプションは次のとおりです。

  1. 合格したテストを示すファイルをプロジェクトのメインディレクトリに追加します(ファイルはtarball内に保存されます)(例:.passedunittest.passedcomponenttest)。
  2. 合格または失敗したテストに関する、tarballのデータベースとして機能する、tarballが保存されているディレクトリにテキストファイルを追加します。
  3. 合格したテストを示すコンポーネントをtarballファイル名に追加します。

私は3つのオプションすべてで元気ですが、個人的には1つ目が好きですが、ばかげた解決策で元気になることがあります。この場合のベストプラクティスはありますか?そして、もしあれば、それは何ですか?

6
Quaker

これはワークフローによって異なります。ビルドtarballで何をしますか?

テスト結果ファイルをtarballに追加することは、「手動」/インプレース検査で最も簡単なようです。

OTOHが名前コンポーネントを追加すると、lssort、およびheadを使用して、内容を検査せずに最新の成功したtarballを選択できます。

ビルドアーティファクトを移動する場合は、git-annexを使用して、それらを制御された方法で移動し、コミットメッセージ(および署名)を関連付けることができます。

1
9000

文字コードを使用して、保留中、成功、または失敗したビルドを通知できます。

app.SS.tar

最初のSは、単体テストが成功したことを意味します。 2番目のSは、コンポーネントテストが成功したことを意味します。

したがって、成功した単体テストと失敗したコンポーネントテストは次のようになります。

app.SF.tar

成功した単体テストとコンポーネントテストはまだ実行されていません。

app.SP.tar

基本的に、各テスト実行では、ファイル拡張子の前の文字位置が取得されます。次に:

  • Pは保留中です
  • Sは成功しています
  • Fは失敗しました
1
Greg Burghardt