TeamCity中的MsTest:测试发现一个构建配置而不是另一个

时间:2012-05-29 22:12:09

标签: teamcity mstest

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

在拆分为两个配置之前,MsTest构建步骤使用属性[Category(“Unit”)]运行所有测试。 MsTest构建步骤中的“附加命令行参数”值为“/ category:unit”。我创建了一个新的测试属性类别 - “集成” - 以便在两个配置之间拆分两种类型的测试。每小时构建配置旨在使用“/ category: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目录,以及相同的构建配置参数。为两者创建相同的工作目录。它们之间没有依赖关系。他们在同一个代理人身上运行。

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

1 个答案:

答案 0 :(得分:1)

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

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