c# - 在 .NET Framework 应用程序中将测试指定为构建目标
问题描述
我目前有一个 .NET Framework 应用程序,我正在尝试使用 jenkins 自动化其构建过程。有没有办法在启动项目文件的目标中指定测试,以便我可以指定如下命令:
msbuild /t:测试
它会运行测试吗?
解决方案
我建议您使用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->'"%(FullPath)"', ' ')
</VSTestCommand>
</PropertyGroup>
<Exec Command="$(VSTestCommand)" ContinueOnError="false" />
</Target>
</Project>
然后用msbuild jenkins.build /t:Test
.
(当然,这个文件中定义了很多依赖环境的东西。)
推荐阅读
- html - 如何使用输入类型=数字在滑块中设置计数?
- python - 按前两个字符对 Python 列表进行排序并返回出现次数较多的字符
- java - 获取一个字符串列表并将数组列表中的每个字符加倍
- php - mysqli_stmt_execute() 只需要 1 个参数,给定 0
- typescript - 为什么 Typescript 在这种简单的情况下会推断出一个空对象
- azure-devops - 使用 Azure AD 令牌通过 Azure DevOps 进行身份验证
- mysql - sql只获取域名
- batch-file - 在 .bat 中可以使用文本变量内容代替带有 WinMsg.exe 的文本文件吗?
- python - 使用 Pandas Period 对象更新散景范围
- sql - 如何从用户中选择最高评价?