MsTest in TeamCity:找到一个生成配置的测试,但找不到另一个生成配置的测试



我有一个 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:TeamCitybuildAgentpluginsdotnetPluginbinJetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit
[14:48:07][Step 2/2] in directory: D:TeamCitybuildAgentwork23f125e3a59e551a
[14:48:11][Step 2/2] No assemblies, run configuration and test metadata were found

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

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

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

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

最新更新