2016-02-17 15 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

相关问题