2012-05-29 77 views
2

我有一個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 

這兩種構建配置除了構建觸發外在其他方面都是相同的。他們使用默認的檢出和工作目錄,以及相同的構建配置參數。爲兩者創建相同的工作目錄。它們之間沒有依賴關係。他們運行在同一個代理上。

我的問題是:爲什麼小時配置沒有找到測試?

回答

1

我知道你說你的測試模式在你的兩個構建步驟之間是一樣的,但仔細檢查。這具有搜索模式錯誤的所有特徵。

如果TeamCity實際上在日誌中回顯測試程序集的搜索模式,但由於它沒有,很容易意外地在路徑中留下斜線 - 特別是如果您使用參數化路徑。有時在百分比符號之間很容易丟失斜線。

相關問題