我的公司已经将Team Foundation Server作为持续集成平台。但是,我要设置的是构建配置,开发人员可以在自己的开发机器上运行。
假设我有一个包含.NET C#类库项目的Visual Studio解决方案(我将其称为库项目)。它还包含另一个项目,其中包含Library Project的单元测试类(我将其称为测试项目)。
我为每个项目和解决方案级别提供了正常的调试和发布构建配置。对于这两种配置,我将其设置为仅构建库项目(因此不会构建测试项目)。
我想要做的是设置2个新的构建配置,称为Debug With Testing和Release With Testing。它们将分别与Debug和Release相同,但我需要它们具有以下额外功能:
做第1项很容易。但是,我无法弄清楚如何处理第2至5项。任何人都可以指出我正确的方向吗?
任何帮助将不胜感激。 TIA
答案 0 :(得分:3)
您需要编写自定义MS构建代码,我已经完成了以下类似的任务:
并听取此任务的代码
<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="-------------------------------- Running Unit Tests for category 1 only--------------------------------" />
<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>
有关详细信息,请参阅此文章的源代码 http://mohamedradwan.wordpress.com/2010/11/13/automate-the-best-practice-for-check-in-including-get-latest-deploy-db-run-test-check-in/
答案 1 :(得分:0)