2

私の会社には、継続的インテグレーションプラットフォームとしてすでにTeamFoundationServerがあります。ただし、私がセットアップしようとしているのは、開発者が自分の開発マシンで実行できるビルド構成です。

.NET C#クラスライブラリプロジェクト(これをライブラリプロジェクトと呼びます)を含むVisualStudioソリューションがあるとします。また、ライブラリプロジェクトのユニットテストクラスを含む別のプロジェクトも含まれています(これをテストプロジェクトと呼びます)。

各プロジェクトおよびソリューションレベルで、通常のデバッグおよびリリースビルド構成があります。これらの構成の両方について、ライブラリプロジェクトのみをビルドするように設定しました(したがって、テストプロジェクトはビルドされません)。

私がやりたいのは、DebugWithTestingとReleaseWithTestingという2つの新しいビルド構成をセットアップすることです。それらはそれぞれデバッグおよびリリースと同じになりますが、次の追加機能が必要です。

  1. テストプロジェクトを構築します。
  2. テストプロジェクトですべてのテストケースを実行します。
  3. ライブラリプロジェクトでコード分析を実行します。
  4. テストとコード分析のためのレポートを生成します。
  5. レポートを特定の場所に保存します。

項目1の実行は簡単です。しかし、項目2から5の方法がわかりません。誰かが私を正しい方向に向けることができますか?

どんな助けでも大歓迎です。TIA

4

2 に答える 2

3

カスタム MS ビルド コードを記述する必要があります。私は既に次のようなタスクを実行しています。

  • TFS から最新の変更を取得する
  • すべてのプロジェクトを含むソリューションをビルドする
  • メイン データベースをローカルにデプロイする
  • データ ドリブン テストで使用されるテスト データを保持するテスト データベースをローカルにデプロイします。
  • カテゴリ 1 に属するサニティ テストまたは BVT (ビルド検証テスト) を実行します (DB とコードの統合をテストします)。
  • 保留中の変更をチェックインする

このタスクのコードを聞く

<Target Name="GetLatestFromTFS2010" AfterTargets="build" >
 <Message Importance="high" Text ="start GetLatest for the project "></Message>
 <Exec Command='"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" get $/AutoDBand/AutomateDatabaseAndTest/AutomateDatabaseAndTest /recursive /login:YourUsername,YourPassword' ContinueOnError='false'/>

 </Target>
 <!--===========Deploy Database============-->
 <Target Name="DeployDatabase" AfterTargets="GetLatestFromTFS2010" Condition="'$(Configuration)' == 'DebugForCheck-in'">
 <Message Importance="high" Text="-------------------------------- Deploying Database according to the connection string -------------------------------- " />
 <Message Importance="high" Text=" "/>
 <MSBuild Projects="..\DB\DB.dbproj" Targets="Build;Deploy" />
 </Target>

 <!--============Run the Test==================-->
 <Target Name="UnitTests" AfterTargets="DeployDatabase" Condition="'$(Configuration)' == 'DebugForCheck-in'">
 <Message Importance="high" Text="--------------------------------&nbsp; Running Unit Tests for category 1 only--------------------------------"&nbsp; />
 <Message Importance="high" Text=" "/>
 <Exec Command='"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe" /testcontainer:"..\BLTest\bin\Debug\BLTest.dll" /category:cat1' />
 </Target>

 <Target Name="Chekin-pendingChange" AfterTargets="UnitTests" >
 <Message Importance="high" Text ="-------------------------------- start Check-in process-------------------------------- "></Message>
 <Message Importance="high" Text=" "/>
 <Exec Command='"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe" checkin $/AutoDBand/AutomateDatabaseAndTest/AutomateDatabaseAndTest /recursive /login:YourUsername,YourPassword' ContinueOnError='false'/>
 </Target>

詳細については、ソース コードを含むこの記事を参照して ください。 -実行-テスト-チェックイン/

于 2011-09-07T11:47:03.217 に答える
0

次のようなものを見てください:

すべてが継続的インテグレーションサーバーであり、やりたい仕事をするのに適しています。

于 2011-09-07T09:37:02.840 に答える