我的公司已经有一个 Team Foundation Server 作为持续集成平台。但是,我希望设置的是开发人员可以在他们自己的开发机器上运行的构建配置。
假设我有一个 Visual Studio 解决方案,其中包含一个 .NET C# 类库项目(我将其称为库项目)。它还包含另一个项目,其中包含库项目的单元测试类(我将其称为测试项目)。
我有每个项目和解决方案级别的正常调试和发布构建配置。对于这两种配置,我已将其设置为仅构建库项目(因此不会构建测试项目)。
我想做的是设置 2 个新的构建配置,称为 Debug With Testing 和 Release With Testing。它们分别与 Debug 和 Release 相同,但我需要它们具有以下额外功能:
做第 1 项很容易。但是,我不知道如何做第 2 到 5 项。有人能指出我正确的方向吗?
任何帮助将不胜感激。 TIA
最佳答案
您将需要编写自定义 MS 构建代码,我已经完成了一些类似的任务,如下所示:
数据驱动测试
属于第 1 类(测试 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="-------------------------------- 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/
关于visual-studio-2010 - 使用特定的 Visual Studio 项目构建配置来运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331570/