我想使用MSBuild运行单元测试。以下是我今天如何调用msbuild:
msbuild MySolution.sln
相反,我想使用名为“MyBuild.proj”的MSBuild项目文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5" DefaultTargets="Build">
<Target Name="Build">
<ItemGroup>
<SolutionToBuild Include="MySolution.sln" />
<TestContainer Include="..\Output\bin\Debug\*unittests.dll"/>
</ItemGroup>
</Target>
</Project>
然后调用此命令行:
msbuild MyBuild.proj
出于某种原因,当我这样做时,命令会立即成功,并且构建甚至不会发生。我担心因为我是MSBuild的新手,我必须遗漏一些非常明显的东西。
我想我真的有两个问题:
谢谢!
答案 0 :(得分:5)
你还没有提供任何实际做任务的任务, 在构建目标内部,您需要调用msbuild任务,您的示例变为:
<Target Name="Build">
<ItemGroup>
<SolutionToBuild Include="MySolution.sln" />
<TestContainer Include="..\Output\bin\Debug\*unittests.dll"/>
</ItemGroup>
<MSBuild Projects="@(SolutionToBuild)"/>
</Target>
这指定了你真正想要msbuild构建的项目。 有关详细信息及所需参数,请参阅:http://msdn.microsoft.com/en-us/library/vstudio/z7f65y0d.aspx。
这是第一部分。
至于第2部分?你在使用什么测试框架?如果使用mstest id,请尝试在msbuild exec语句中包装命令行mstest.exe,以使其运行并执行测试。请在此处查看示例:http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/cb87a184-6589-454b-bf1c-2e82771f c3aa