如何将 MSTest 集成到 TeamCity 构建过程中

2024-05-09

如何在 TeamCity 中运行 MSTest 作为构建过程的一部分?有哪些陷阱?


此答案专门针对 Windows 上的 TeamCity 7.1,但也可能适用于其他环境。

  1. In your TeamCity build configuration, on the General Settings page
    1. 工件路径: Artifacts\MSTest => MSTest
  2. Create a new Command Linebuild step
    1. 自定义脚本: if not exist Artifacts\MSTest mkdir Artifacts\MSTest
  3. Create a new MSTestbuild step
    1. 列出程序集文件: **\bin\**\*.Tests.dll
    2. 结果文件: Artifacts\MSTest\testResults.trx

Pitfalls

指定要运行的测试程序集时使用通配符

指定在 MSTest 构建步骤中运行哪些测试程序集时,可以使用通配符,尽管尚不清楚它们到底如何工作。 A错误报告 http://youtrack.jetbrains.com/issue/TW-24220已备案。

当测试失败时构建过程不会停止

请注意,如果某些测试失败并且构建被标记为失败,则 MSTest 构建步骤本身不会失败。如果您在 MSTest 构建步骤之后有构建步骤,而如果测试失败则不想运行该构建步骤(例如,生成您知道有错误的构建的安装程序或文档可能没有意义),这会导致问题。希望问题是fixed http://youtrack.jetbrains.com/issue/TW-17002在 TeamCity 的更高版本中。

如果您希望构建过程在测试失败时停止,您可以创建一个新的构建步骤,该步骤使用TeamCity REST API http://confluence.jetbrains.net/display/TW/REST+API+Plugin检测当前构建是否已被标记为失败(请记住,当测试失败时,构建步骤不会被标记为失败,但构建会被标记为失败),然后显式地使当前构建步骤失败。例子:

  1. Create a new Powershell build step
    1. Script: 源代码
    2. 源代码: 参见下面的脚本
  2. 确保新创建的构建步骤紧随 MSTest 构建步骤之后
  3. 确保此后的每个构建步骤都已完成执行步骤 set to 仅当前面的所有步骤都成功时

Script:

$xml = [xml](curl --request GET http://USERNAME:PASSWORD@HOSTNAME/httpAuth/app/rest/builds/%teamcity.build.id%)
Microsoft.PowerShell.Utility\Select-Xml $xml -XPath "/build" | % { $status = $_.Node.status }
if ($status -eq "FAILURE") {
    throw "Failing build step on purpose"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 MSTest 集成到 TeamCity 构建过程中 的相关文章

  • 是否可以指定何时运行构建功能?

    TeamCity 8 1 4 内部版本 30168 我注意到构建功能始终作为构建步骤中第一步的第一部分运行 但是是否可以使构建功能运行 例如作为步骤2的第一部分 或者作为 Step1 的最后一部分 任何帮助表示赞赏 如果感兴趣 这是我的具体
  • Selenium WebDriver 测试失败并出现 System.Net.WebException 无法连接

    我正在开发一套 Selenium WebDriver 不是 Selenium RC 也不使用 Selenium Server 测试 这些测试是通过命令行调用 MSTest 来执行的 我已将它们分解为我们计划测试的每个浏览器 目前是 Chro
  • 为什么在 Resharper/MSTest 下调试时引用的 dll 被锁定?

    我对汇编中的方法进行了集成测试A 集会A参考汇编B通过项目参考 我在 Resharper 6 1 单元测试场景中的 Visual Studio 2010 调试器下运行它们 测试引擎是微软原生的MSTest 我得到了臭名昭著的 该进程无法访问
  • 如何在远程存储库上运行 hg recovery 命令

    在 teamcity 中运行构建时出现以下错误 Failed to collect changes error C Program Files TortoiseHg hg exe config ui interactive False pu
  • 如何模拟 xml 进行单元测试?

    我需要对这个 GetData 方法进行单元测试 public MessageResponse GetData XmlElement requestElement MessageResponse MsgResponse new Message
  • 在 .NET Core csproj 文件中更改为 (复数)时出错

    我正在关注 Pluralsight 上的一个关于让 MSTest 项目同时针对 net core 2 2 和 NET 4 7 2 的教程 这需要转到我的测试项目的 csproj 文件并对其进行编辑 以便以下内容
  • 一步一步 YouTrack“在构建中修复”填充 TeamCity 集成

    我正在使用 TeamCity Professional 8 1 和 YouTrack 5 0 6 我已经成功地用两步工作流程填充了 YouTrack 中的 Fixed in build 字段 我在用 issue id 已修复我的 Mercu
  • 如何将自定义 nuget feed 添加到 TeamCity 构建?

    我使用 Teamcity 创建了一个 Nuget 服务器 在互联网上的虚拟机上运行 并创建了将包发布到其中的构建 我还有另一个项目需要使用该包 该项目也是基于 teamcity 构建的 在我本地的 Visual Studio 上 我添加了
  • 强制 TeamCity 基于特定代理进行构建

    是否可以在不禁用所有其他连接的代理的情况下强制 TeamCity 在特定代理计算机上构建 Under Build Configuration Settings go to Agent Requirements并设置一个Explicit Re
  • 显式调用静态构造函数

    我想为下面的课程编写单元测试 如果名称不是 MyEntity 则 mgr 应为空 消极的单元测试 使用 Manager 私有访问器 我想将名称更改为 Test 以便 mgr 应该为空 然后会验证 mgr 值 为了实现这一点 我想显式调用静态
  • 运行 Maven Surefire 测试插件 Java 11 时出错

    我正在使用 Maven Surefire 插件版本 2 22 1 在 Team City 中运行 Spring Boot 应用程序的一些测试 Spring Boot 版本是 2 1 2 我在配置中指定使用分叉的 Java 11 jvm 如下
  • MSTest:如何增加测试时间

    我有一个测试需要运行超过 1 分钟 VS2008 MSTest 测试是从 VisualStudio 启动的 const int TestTimeout 1 TestMethod Timeout 10 60 1000 10 minutes p
  • TeamCity 中代码覆盖率的属性过滤器语法

    有人知道从 Teamcity 的覆盖范围中排除代码的语法吗 我在某些方法上使用 ExcludeFromCodeCoverageAttribute 并希望排除这些方法 它在 Visual Studio 中运行良好 但我不明白如何在 TeamC
  • 如何使用 Visual Studio 2012 中的运行设置文件从代码覆盖率中排除服务引用?

    我使用自定义运行设置文件来控制检查哪些项目的代码覆盖率 我使用了 Microsoft 提供的默认模板 到目前为止已经能够毫无问题地排除我想要的项目 我的下一步操作是从代码覆盖范围中排除添加服务引用时由 Visual Studio 创建的自动
  • 当 mstest 成功运行并且所有测试通过时,为什么 PartCover 报告显示 0%

    我正在尝试通过 mstest 测试获得代码覆盖率 我正在使用 PartCover 2 2 0 36424 问题在于真实的程序集 我得到 0 的代码覆盖率 注意 所有测试都通过 在我创建的演示源的演示测试中 它运行良好 报告很有意义 我注意到
  • TeamCity:如何告诉 MSBuild 考虑发布配置文件参数?

    当我想使用发布配置文件编译我的项目时 我使用 MSBuild 步骤进行 TeamCity 构建配置 我的发布配置文件位于MyProject Properties PublishProfiles profile pubxml 我的配置文件 p
  • x86 LargeAddressAware 兼容性的单元测试

    对于 win32 可执行文件 x86 我们可以设置 LargeAddressAware 标志 以便它在 x64 Windows 上运行时可以访问 4 GB 而不是仅 2 GB 的虚拟地址空间 这看起来很吸引人 然而 这也存在风险 例如参见
  • TeamCity - 自动化在哪里

    我们安装了 TeamCity 和 TFS 它们运行良好 我的问题是这两者应该如何提高我们的工作流程效率 一旦我在开发计算机上更改代码 我必须转到 TeamCity UI 来运行构建和测试吗 这里面的自动化在哪里 无论如何我都是手动做的 我在
  • gradle 神器插件

    我是artificialy 和 teamcity 的新手 我尝试使用 gradle artifactory 插件 但它引发了我以下错误 任何人都可以告诉我这个错误是什么并帮助我解决一些问题 Error is Caused by org co
  • MSTest 和 NHibernate

    有谁有让 MSTest 将 hibernate cfg xml 正确复制到输出目录的经验吗 我的所有 MSTest 都因找不到 hibernate cfg xml 错误而失败 我将其设置为 始终复制 但我的 MBUnit 测试通过了 您可以

随机推荐

  • 选择表中的人员并排除妻子,但合并他们的名字

    我有一张桌子Person PersonID FirstName LastName 1 John Doe 2 Jane Doe 3 NoSpouse Morales 4 Jonathan Brand 5 Shiela Wife And a R
  • ansible:基于 extra-vars 文件的任务顺序

    我有包含 10 个任务的 ansible 剧本 任务的顺序因用例而异 因此我必须为每个用例创建 extraVar yml 文件 并且 extraVar yml 将定义任务的顺序 怎么做 Example 剧本 tasks name task1
  • Flash 未在调试播放器中显示错误/堆栈跟踪(firefox/chrome/whatnot)

    我正在尝试调试在线默默地失败的应用程序 我 100 确定我正在运行 Flash 调试播放器 为了确保我不会丢失它 我故意抛出一个错误 但 Flash 在浏览器中没有显示任何 stracktrace 我快要失去它了 有什么线索吗 我正在 ch
  • 无法使用docker在Apple Mac芯片M1上启动elasticsearch

    在发布这个问题之前 我浏览了许多链接 例如 Kibana 无法在 Mac M1 上使用 docker 连接到 ElasticSearch https stackoverflow com questions 73160632 kibana c
  • Crystal Report:如何计算一个公式中的多个 IF 语句?

    背景 我正在尝试对报告的详细信息行进行一些美观的验证 我有几个名为 Assert 语句的公式 如果测试失败则返回 false 如果通过则返回 true Goal 我想创建一个存储 违反规则 的数组 然后将它们显示在行末尾的字段中 标题为 违
  • 如何使用数据库在 Django 中的应用程序之间交换数据?

    我正在使用 Django 在网络上工作 我创建了 2 个应用程序 第一个用于客户端注册并将其数据添加到数据库 第二个应用程序供用户访问和查看交互界面 这个想法是使用第二个应用程序从数据库中的客户端获取数据 并使用它向用户显示一些信息 我的问
  • 页面加载时显示扩展库对话框?

    有没有办法在我的页面加载时显示扩展页面对话框 Add a
  • 向量化 numpy bincount

    我有一个 2d numpy 数组 A我要申请np bincount 到矩阵的每一列A生成另一个二维数组B由原始矩阵每列的 bincounts 组成A 我的问题是 np bincount 是一个采用一维数组的函数 它不是像这样的数组方法B A
  • 使用 cURL 从 shell 发布 4GB 文件

    我尝试将文件大小为 4GB 的文件发布到 REST API cURL 不会上传此大小的文件 而是 POST 内容长度为 0 的文件 curl v i d work large png H Transfer Encoding chunked
  • 在VisualStudio DTE中,如何获取ActiveDocument的内容?

    我正在 VisualStudio 中编写脚本 并尝试获取当前 ActiveDocument 的内容 这是我当前的解决方案 var visualStudio new API VisualStudio 2010 var vsDTE visual
  • 获取证书链

    我正在 Java 中使用 X509 证书 给定一个证书 是否可以在签名层次结构中找到所有其他证书 直到找到根证书 我有一个证书文件 带有 cer扩展名 我想提取父签名证书 我想继续查找该证书的父证书 直到获得最终的自签名根证书 我已经检查了
  • 在 Magento 控制器中使用 move_uploaded_file

    我是 magento 的新手 我正在 magento 管理中创建用于文件上传的自定义模块 现在我已将上传文件发布到我的模块控制器中 这里我用过move uploaded file将文件上传到与控制器文件夹相同的目录中 下面的代码我用于控制器
  • 可观察集合未因 UI 更改而更新

    我正在尝试将可观察集合绑定到用户控件 但它不会在用户更改时更新 但在通过代码更改用户控件时它会更新 以下是我尝试过的一个例子 它可能有点长 但它正在运行 因此您可以按原样复制并粘贴代码 请参阅帖子末尾我的问题 客户 cs using Sys
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • 引用生成的类名的 JSS 语法是什么?

    Material UI 在其核心使用 JSS 有时您需要覆盖其基本组件的样式 示例来自Input https github com mui org material ui blob next packages material ui src
  • 如何获取队列中的第 n 个项目?

    我的应用程序中有许多队列和优先级队列 我想轻松访问这些队列中的第 n 个项目 但没有看到使用 API 实现此目的的简单方法 我想我可以创建一个Iterator并迭代到第 n 个元素或使用toArray index 但似乎应该有一个更简单的方
  • 替换 Javascript 中的引号?

    对于我正在制作的网络应用程序 我将收到文本字符串 其中偶尔包含引号 因为我接下来要 document writing 字符串 所以需要将它们更改为撇号或转义 我该怎么做 因为当我尝试时它似乎不起作用 特别是我认为因为字符串的引号阻止了脚本的
  • HTML if 语句在 CDN 失败时加载本地 JS/CSS

    当从 CDN 或任何外部服务器加载 CSS JS 文件时 有可能 即使概率很低 由于外部故障而丢失该文件 在这种情况下 html 页面将因缺乏适当的 CSS 和 JS 而被损坏 有没有一种实用的方法可以在 CDN 故障时加载本地版本 IF
  • 在openjdk:7-jre-alpine docker上如何安装python 3.6

    直到大约一周前 我才在 java 图像上成功使用 python 3 6 脚本 如下所示 FROM openjdk 7 jre alpine RUN apk update apk upgrade apk add no cache bash a
  • 如何将 MSTest 集成到 TeamCity 构建过程中

    如何在 TeamCity 中运行 MSTest 作为构建过程的一部分 有哪些陷阱 此答案专门针对 Windows 上的 TeamCity 7 1 但也可能适用于其他环境 In your TeamCity build configuratio