【发布时间】:2016-06-29 04:12:42
【问题描述】:
我正在尝试从 QC 需求模块中提取需求。我可以提取 QC 项目的所有需求,但我只想提取选定的需求。所以我需要给出文件夹路径并相应地提取要求。 目前我使用 ReqFactory 从 QC 中提取 Reqs。您能否帮助我或给我一个想法,以从选定的文件夹路径中提取要求。
我尝试了 Req Path 和父亲 id,但它仍然不能满足我的需要,因为有些可能在父文件夹下有多个子文件夹。
【问题讨论】:
我正在尝试从 QC 需求模块中提取需求。我可以提取 QC 项目的所有需求,但我只想提取选定的需求。所以我需要给出文件夹路径并相应地提取要求。 目前我使用 ReqFactory 从 QC 中提取 Reqs。您能否帮助我或给我一个想法,以从选定的文件夹路径中提取要求。
我尝试了 Req Path 和父亲 id,但它仍然不能满足我的需要,因为有些可能在父文件夹下有多个子文件夹。
【问题讨论】:
我假设您喜欢使用 OTA API 获取需求的所有子需求?我能提供的唯一解决方案有点笨拙。首先,您必须获得要从哪里开始的要求,例如“需求\项目\ProjectX”。如何实现这一点在 OTA API 参考中作为 ReqFactory 对象的示例进行了描述(“在指定文件夹中查找指定需求”)。或者发布在this forum。如果您知道启动需求的 ID,您可以通过 req_factory.Item(id) 简单地获取需求。
当你有你想要开始的需求时,你可以使用 ReqFactory 的 Find-method 来获取它的所有孩子,resp。所有 Requirement 对象都以与 start-require 相同的路径开始。这是 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 包含一个采用奇怪的 Quality Center 表示法的字符串,例如“AAAAAB”。 Find-method 从 start-requirement 开始,搜索路径与 start-requirement 的路径相同的所有需求。参数8 表示“以模式开头”(在API 参考中描述,Enum tagTDAPI_REQMODE)。我只是不知道如何使用 Ruby 访问 Enum,这就是为什么使用魔法 8... Find 方法返回一个格式为“ID,NAME”的列表。从那里提取需求应该没有问题。
使用 VAPI-XP-TEST 和 VB 在 QC 中直接执行相同操作看起来像这样:
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”的需求列表。
【讨论】: