我正在为VS2008 / C#桌面项目设置一个CI系统,没什么特别的,只是一个构建/测试周期。 CI将使用MSBuild / MSTest在Hudson下运行,但我似乎无法决定如何做一些事情,也许你可以帮助我?
我在CI中运行项目的选项是:
如果我不需要运行测试,我很可能只使用第一个选项(在MSBuild中运行.sln)。但我需要添加一个运行测试的任务,所以我似乎无法决定是否应该将任务/目标添加到.csproj中,或者在单独的项目中执行。我想要实现的一件事是,当我更改我的.sln或其中一个.csproj时,理想情况下我不应该触摸任何其他内容以便能够在CI中成功运行。
另一个问题是围绕运行MSTest - Exec任务是否足够,或者我应该编写/使用一些MSTest任务(似乎无法在.Net上找到一个)
答案 0 :(得分:2)
Test任务是.NEt 3.5 Framework中MSBuild的内置任务,代码覆盖也是如此。只需搜索MSDN上的BeforeTest和CoreTest目标。不是很难,只包括:
<ItemGroup>
<TestContainer Include="$(OutDir)\BuildTestProject.dll" />
</ItemGroup>
<ItemGroup>
<MetaDataFile Include="$(SolutionRoot)\BuildTest.vsmdi" />
</ItemGroup>
<PropertyGroup>
<RunConfigFile>$(SolutionRoot)\LocalTestRun.testrunconfig</RunConfigFile>
</PropertyGroup>
应该有效..