首页 > 解决方案 > 在 .NET Framework 应用程序中将测试指定为构建目标

问题描述

我目前有一个 .NET Framework 应用程序,我正在尝试使用 jenkins 自动化其构建过程。有没有办法在启动项目文件的目标中指定测试,以便我可以指定如下命令:

msbuild /t:测试

它会运行测试吗?

标签: c#asp.net.netmsbuildmsbuild-task

解决方案


我建议您使用Test Target创建一个新proj文件。

例如,您将在存储库根目录中创建一个文件,调用它jenkins.build,并将以下代码放入其中:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="Test">
    <ItemGroup>
        <UnitTests Include="$(WorkingFolder)\**\bin\$(Configuration)\**\*.UnitTests.dll;" Exclude="$(WorkingFolder)\**\*Microsoft.VisualStudio.*;"/>
    </ItemGroup>

    <PropertyGroup>
      <VSTestPath>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"</VSTestPath>
      <VSTestCommand>
          $(VSTestPath) @(UnitTests->'&quot;%(FullPath)&quot;', ' ')
      </VSTestCommand>
    </PropertyGroup>

    <Exec Command="$(VSTestCommand)" ContinueOnError="false" />
  </Target>
</Project>

然后用msbuild jenkins.build /t:Test.

(当然,这个文件中定义了很多依赖环境的东西。)


推荐阅读