2

我有一个使用两个构建配置设置的 TeamCity 项目。每三分钟运行一次,以连续的方式运行。另一个每小时运行一次。这些曾经是一种配置,直到我拆分出连续构建。两种配置都有两个构建步骤:第一个构建解决方案,第二个使用 MsTest 运行单元测试。

在拆分为两个配置之前,MsTest 构建步骤运行所有具有属性 [Category("Unit")] 的测试。MsTest 构建步骤中的“附加命令行参数”值为“/category:unit”。我创建了一个新的测试属性类别——“集成”——以便在两种配置之间拆分两种类型的测试。每小时构建配置旨在使用“/category:integration”的“附加命令行参数”值。

不幸的是,每小时构建配置没有找到任何要运行的测试。命令行参数是否包含“unit”、“integration”或两者都没有关系(“unit|integration”)。另一方面,持续构建查找并运行与命令行参数中包含的类别相对应的测试。每小时构建日志包括以下输出:

[14:48:07]Step 2/2: Test Solution Hourly (MSTest) (29s)
[14:48:07][Step 2/2] Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit
[14:48:07][Step 2/2] in directory: D:\TeamCity\buildAgent\work\23f125e3a59e551a
[14:48:11][Step 2/2] No assemblies, run configuration and test metadata were found

除了构建触发之外,这两种构建配置在所有方面都是相同的。他们使用默认的 checkout 和 work 目录,以及相同的构建配置参数。为两者创建相同的工作目录。它们之间没有依赖关系。它们在同一个代理上运行。

我的问题是:为什么每小时配置找不到测试?

4

1 回答 1

1

我知道您说过您的两个构建步骤之间的测试模式相同,但请仔细检查。这具有搜索模式错误的所有特征。

如果 TeamCity 实际上在日志中回显了您的测试程序集的搜索模式,那就太好了,但由于它没有,因此很容易意外地在路径中遗漏斜杠 - 特别是在您使用参数化路径时。有时很容易丢失百分比符号之间的斜线。

于 2012-06-04T16:16:42.960 回答