2012-03-06 23 views
5

私たちはNuGetを大勢利用しています。私たちは25-30個のパッケージを持っており、ネットワーク共有で利用できます。NuGetパッケージのテスト

新しいパッケージを作成して消費アプリケーションでリリースする前に、新しいパッケージをテストできるようにしたいと考えています。理想的には、これはsomething similar to Maven's snapshotを使用し、特定の開発パッケージ(例えばsnapshot functionality)を使用して行うことができます。

他の誰かが、理想的には合理的に非ハッキーなやり方を考えていますか?

パッケージアセンブリを生成し、パッケージ/ディレクトリ内のアセンブリを手動で上書きする、つまり実際のプロジェクト参照を置き換えることですが、それは特にきれいに見えません。

更新:

我々は、すべてのコミットの上に構築作成し、特定の手動NuGetは、特にコードベースのバージョンをタグ付けオフに働く構築トリガしたCIビルドサーバーを使用しています。すべてのコミットからNuGetビルドを作成することは望ましくありませんが、手動NuGetパッケージビルドを起動する前に、可能性の高い候補をテストできます。

答えて

2

ライブラリを配布するためにNuGetパッケージを使用している場合は、ライブラリのテストのみに限定するべきではありません。パッケージ自体もテストする必要があります(バイナリは正常ですが、正しくインストールされていてもコンシューマには問題があります)。全体のポイントは、この経験を改善することです。

CIまたはQAリポジトリを追加することもできます。あなたが現在持っているものは、完成した高品質の製品と見なされる消耗品リリースを含む実際の "生産"リポジトリです。さらに行く

、あなたは論理的なパッケージのプロモーションの流れを持つことができ、(継続的インテグレーション、あるいは連続的送達のアプローチを使用することに基づいて): - 各チェックインがあなたのCIリポジトリ 上でパッケージを作成する - テスターは拾いますQAのためのCIパッケージとOKが見つかった場合は、QAフィードまたはプロダクションフィードのいずれかにプロモートします(テストの品質と自動化の程度によって異なります)

さまざまな実装方法このシナリオは、シンプルなネットワーク共有、内部NuGet.Serverまたはギャラリーの実装を使用するか、単純にhttp://myget.orgを使用して、コストと労力を最小限に抑えて試してみてください。

希望に役立ちます!

乾杯、 ザビエル

+0

私たちは社内専用の開発チームであり、少なくともこの要件では、アセンブリが正常であることを検証した後です。典型的なワークフローは、アプリケーション開発者がパッケージにバグを見つけたことです。パッケージ開発者(必ずしもそうである必要はありませんが)は、パッケージ内でテストを作成し、候補ビルドを作成しますが、アプリケーションが破損しているパッケージをテストするための優雅な方法があります。このシナリオでは、Mavenのスナップショットまたは開発ビルドが理想的です。 NuGetには、すぐに使えるだけのものはありません。 – Unsliced

+0

このリンク[http://www.arunrana.net/2012/01/testing-nuget-package-before-publishing.html]を確認してください。簡単な答えは、 "公開されていない"パッケージを指す別のパッケージソース(ファイルパス)を追加してから、パッケージマネージャコンソールを使用してその場所からインストールできることです。 –

0

私はまねた問題を解決するためのユニット/統合テストフレームワークを書いてしまいました。基本的には、パッケージの内容、バージョンと情報、パッケージをインストールしてアンインストールしたときの状況、libのアセンブリのバージョン、アセンブリのビット数(x86またはx64)、 Visual Studioがインストールされていなくても、私のビルドマシン(ヘッドレス)であれば、品質の良いゲートとして実行するためにはすべてが必要でした。

のような巨人の肩の上:PesterPETools、およびSharpDevelop's package management module私は一緒に置く - nuget-test

  1. クローンあなたのパッケージディレクトリにプロジェクト(あなた。nuspecファイルとパッケージファイルがあります)。もし何らかの理由であなたが "git" repoとしてnuget-testプロジェクトを残したければ、以下のコマンドから "remove-item nuget-test/.git -Recurse -Force"を単純に削除してください。 PowerShellのののx86インスタンスでnuget-testディレクトリのルートに

    git clone https://github.com/nickfloyd/nuget-test.git; remove-item nuget-test/.git -Recurse -Force

  2. 実行Setup.ps1。

    PS> .\setup.ps1

  3. 書き込みテストやPester構文を使用してnugetテスト/ testディレクトリに配置します。

  4. テストを実行します。

    PS> Invoke-Pester

プロジェクトページ:githubの上でnuget-test
https://github.com/nickfloyd/nuget-test

私は、これはあなたが行わ取得しようとしているものに近づくことができます願っています。

関連する問題