Unit testing 使用MSBuild从.proj文件运行单元测试

Unit testing 使用MSBuild从.proj文件运行单元测试,unit-testing,msbuild,Unit Testing,Msbuild,我想使用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" DefaultTar

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

我想我真的有两个问题:

  • 为什么这甚至不能构建我的解决方案
  • “TestContainer”元素用于执行测试是否正确

  • 谢谢

    您没有提供任何任务来实际执行任何操作, 在生成目标内部,您需要调用msbuild任务,示例如下:

    <Target Name="Build">
       <ItemGroup>
          <SolutionToBuild Include="MySolution.sln" />
          <TestContainer Include="..\Output\bin\Debug\*unittests.dll"/>
        </ItemGroup>
       <MSBuild Projects="@(SolutionToBuild)"/> 
    </Target>
    
    
    
    这指定您实际希望msbuild生成的项目。 请参阅:了解更多详细信息及其所需参数

    这是第一部分

    至于第二部分?您使用的是什么测试框架?如果使用mstest id,请尝试在msbuild exec语句中包装命令行mstest.exe,以使其运行并执行测试。请参见此处的示例:c3aa