2016-02-17 16 views

回答

0

您可以使用IBuildDetailSpec.Status Property,有一個BuildStatus Enumeration

的建立狀態得到設定爲Inprogress啓動一次。然後,您可以監視構建代理中的時間。減少檢入文件的時間,你將得到你所需要的。

+0

有問題的門控簽入已經完成。他們沒有在進行中。我仍然想知道他們的等待時間。 – mark

0

如果您提到的「等待時間」意味着從構建排隊到開始的時間,現在還沒有任何簡單的方法可以通過TFS API執行此操作。

如上所述,您的構建已經完成,因此您可以從IBuildDetail獲取構建時間信息,但IBuildDetail僅包含IBuildDetail.StartTime和IBuildDetail.FinishTime。構建隊列時間包含在IQueueBuild(IQueueBuild.Queuetime)中。因此,您需要將IBuildDetail轉換爲字符串,然後搜索字符串中的「QueueIds」以獲取QueueID。然後您可以通過以下方式獲得IQueueBuild:

IQueuedBuild iqb = IBuildServer.GetQueuedBuild(QueueID,QueryOptions.All); 

隊列時間爲iqb.QueueTime。比較IQueueBuild.Queuetime和IBuildDetail.StartTime,你應該等待等待時間。

+0

我不確定我是否理解「將IBuildDetail轉換爲字符串」部分。你是否暗示沒有API來獲取QueueIds?這個轉換是一個簡單的'ToString()'調用嗎? – mark

+0

@mark是的,QueueID存在於IBuildDetails中,但沒有API直接獲取它。通過ToString()將其轉換爲字符串,您將看到包含在其中的所有信息。 –

+0

令人難以置信。我會試一試。 – mark

相關問題