Я предполагаю, что вам нравится получать все дочерние требования требования с помощью OTA API? Единственное решение, которое я могу предложить, немного неуклюже. Сначала вы должны получить требование, с которого вы хотите начать, например. «Требования\Проекты\ProjectX». Как этого добиться, описано в Справочнике по OTA API на примере объекта ReqFactory («Найти указанное требование в указанной папке»). Или он размещен на этом форуме. Если вы знаете идентификатор начального требования, вы можете просто получить требование с помощью req_factory.Item(id)
.
Когда у вас есть требование, с которого вы хотите начать, вы можете использовать метод Find ReqFactory, чтобы получить все его дочерние элементы, соответственно. все объекты Requirement начинаются с того же пути, что и start-requirement. Вот пример метода в Ruby:
def list_all_child_requirements(start_req)
req_factory = @tdc.ReqFactory
req_path_strange_format = start_req.Field("RQ_REQ_PATH")
child_req_list = req_factory.Find(start_req.ID, "RQ_REQ_PATH", req_path_strange_format, 8)
child_req_list.each do |list_req|
puts list_req
end
end
req_path_strange_format
содержит строку в странной нотации Центра качества, например "AAAAAB". Метод Find начинается с начального требования и ищет все требования, путь которых начинается с того же пути, что и путь начального требования. Параметр 8
означает "начинается с шаблона" (описано в Справочнике по API, Enum tagTDAPI_REQMODE). Я просто не знаю, как получить доступ к Enum с помощью Ruby, поэтому используется волшебная восьмерка... Метод Find возвращает список в формате "ID,NAME". Оттуда не должно быть проблем с извлечением требований.
Выполнение того же самого непосредственно в QC с помощью VAPI-XP-TEST и VB выглядит так:
TDOutput.Clear
Dim reqPathStrangeFormat
Set reqF = tdConnection.ReqFactory
Set startReq = reqF.Item(14) ' ID of parent requirement
reqPathStrangeFormat = startReq.Field("RQ_REQ_PATH")
TDOutput.Print reqPathStrangeFormat
Set childReqList = reqF.Find(startReq.ID, "RQ_REQ_PATH", reqPathStrangeFormat, TDREQMODE_FIND_START_WITH)
For Each childReq in childReqList
TDOutput.Print childReq
Next
Этот код сначала выводит какую-то странную строку "AAAAAB" или что-то подобное, затем список с "ID,NAME" требований.
person
Roland
schedule
18.03.2014