5

我想使用 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 的新手。

我想我真的有两个问题:

  1. 为什么这甚至不能构建我的解决方案
  2. “TestContainer”元素是否适合执行我的测试

谢谢!

4

1 回答 1

6

您没有提供任何任务来实际执行任何操作,在您的构建目标中您需要调用 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 尝试将命令行 mstest.exe 包装在 msbuild exec 语句中以使其运行并执行测试。在此处查看示例:http: //social.msdn.microsoft.com/Forums/en-US/msbuild/thread/cb87a184-6589-454b-bf1c-2e82771f c3aa

于 2013-05-07T21:07:45.747 回答