我正在尝试从QC需求模块中提取需求。我可以提取QC项目的所有要求,但我想仅提取选定的要求。所以我需要给出文件夹路径并相应地提取需求。 目前我使用ReqFactory从QC中提取Reqs。你能帮助我,还是让我知道如何从选定的文件夹路径中提取需求。
我尝试了Req Path和父ID,但它仍然无法满足我的需要,因为有些子文件夹可能在父文件夹下有多个子文件夹。
答案 0 :(得分:2)
我假设您希望使用OTA API获取需求的所有子要求?我能提供的唯一解决方案有点笨拙。首先,你必须得到你想要开始的要求,例如"要求\项目\ projectX创建&#34 ;.如何实现这一点在OTA API Reference中描述为ReqFactory对象的一个示例("在指定文件夹中查找指定的需求")。或者它发布在this forum。如果您知道启动要求的ID,则可以通过req_factory.Item(id)
获得要求。
如果您的要求在您想要开始的地方,您可以使用ReqFactory的Find-method来获取其所有子项,分别为。所有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-method从start-requirement开始,并搜索所有需求路径以与start-requirement的路径相同的路径开始。参数8
表示"以模式"开头。 (在API参考中描述,Enum tagTDAPI_REQMODE)。我只是不知道如何使用Ruby访问Enum,这就是使用魔法8的原因...... Find-method返回一个格式为" ID,NAME"的列表。从那里提取要求应该没有问题。
使用VAPI-XP-TEST直接在QC中执行相同操作,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"的列表。要求。