特征 bob2002网站 提示与技巧

与.NET的队伍集成,第2部分:测试和建设项目

在这个博客系列中,我们将讨论我们用来集成TeamCity与。net的新方法。
第1部分描述了。net运行器,它涵盖了大部分核心集成功能,并介绍了一个演示项目。在第2部分中,我们将更深入地研究演示项目测试构建配置。

源回购:https://github.com/JetBrains/teamcity-dotnet-samples
这个项目已经建在演示队员服务器.您可以作为访客登录并探索构建结果。

要运行所有构建配置,我们使用以下代理:

  • (A) Windows 10 x64 Pro 10.0.19041
    • Visual Studio 2019 Pro 16.7.5
    • Docker (Windows容器)19.03.13
    • .NET SDK 5.0.
  • Ubuntu 16.04 (B)
    • 码头工人18.06.3

跨平台的测试

如第1部分所述,Demo项目包含两个构建配置,提供我们应用的跨平台测试。
这些构建配置,“在Windows上测试”和“在Linux上测试”,测试应用程序的基本逻辑,并在Windows(代理A)和Linux Docker容器中收集代码覆盖率统计数据. net SDK(代理B),使用单个.NET步骤。例如,在Linux配置中,此步骤如下所示:

在Linux上测试

对于Linux,应用程序的库在.NET SDK 5.0容器内测试。在Windows配置中,步骤看起来类似但不使用Docker。

我们的消息来源子项目时钟。测试是一个。net 5.0应用程序,所以我们可以简单地使用测试命令运行测试。要收集和分析代码覆盖统计信息,我们已选择JetBroins Dotcover。它自动安装JetBrains.dotCover.DotNetCliTool包装为代理工具

在DSL中,您可以找到两个Linux.视窗在公共父节点下测试配置,testbase.

构建控制台和web应用

从它们的名字中可以清楚地看到,“Build console and web for win-x64”和“Build console and web for linux-x64”配置负责从两个源子项目中构建两个版本的应用程序:clock.console.时钟。网络.每个配置包括两个步骤,一个用于每个版本的应用程序。

clock.console.时钟。网络也是。net 5.0应用程序,所以我们可以使用一个。net Core CLI命令来构建和发布它们——发布.下面是Linux上的第一步示例:

在Linux上出版

它构建并发布控制台时钟应用程序到一个单独的可执行文件bin /时钟。控制台/ linux-x64目录中。
在Windows上,此步骤具有不同的值运行时win-x64),输出目录字段(Bin / clock.console / win-x64).

第二步构建和发布它使用了不同的项目路径和输出目录。

在完成每个配置的两个步骤之后,TeamCity将两个结果应用作为构建工件发布到指定的输出目录下。

在DSL中,这些配置是从BuildConsoleAndWebBase班级,这是继承的buildbase.-所有构建配置的基类。通过在中声明两个子项目,我们可以将这两个步骤合并为一个项目,但这将使两个应用程序分开二进制文件。现在它很容易在借助于帮助outputDir财产。

构建Windows应用程序

我们的项目还可以为Windows构建一个桌面版本的应用程序。“Build Windows desktop”配置只有一个步骤

MSBuild一步

它从Visual Studio 2019运行MSBuild,它安装在代理A上,并因此执行所需的目标对于两个子项目:

  • clock.desktop / clock.desktop.csproj.
  • clock.desktop.uwp / clock.desktop.csproj.

将结果发布到两个不同的目录中系统参数PublishDir(时钟。桌面),AppxPackageDir(clock.desktop.uwp.).然后,这些目录作为构建构件出现在构建结果中。

建立Android应用程序

这 ”构建Android应用配置为Android平台构建时钟应用程序。像Windows配置一样,它使用安装在代理A上的Visual Studio 2019 MSBuild:

Android步骤

这个配置只有一个步骤,它类似于Windows上的那个。然而,我们使用signandroidpackage.而不是发布target,因为我们需要发布一个签名的Android包。


结束了我们系列的第二部分。正如您所看到的,与我们的.NET Runner的建立项目现在比以往更加透明。
在本系列的最后一部分中,我们将展示如何打包、聚合和部署我们的多平台应用程序。
您的反馈对我们来说很重要。如果您尝试过新赛跑者,请告诉我们您的经验和期望。

有用的链接:

构建快乐!

发现更多的