【问题标题】:Jira: Producing a report containing the stories & blocking issues associated with a releaseJira:生成包含与发布相关的故事和阻止问题的报告
【发布时间】:2017-07-10 08:14:30
【问题描述】:

我工作的公司使用 Jira 来支持项目的需求捕获和测试阶段。我们将故事(即需求)分配给发布。作为一名测试工程师,我提出了一些错误,然后我在故事中将其称为“被阻止”。

我需要创建一份报告,列出每个版本以及与该版本相关的故事。当我提出错误时,我需要报告也包含错误(或实际上提出的任何其他问题)。

我看不到直接在 Jira 中执行此操作的方法,但我找到了适用于 Python 的 Jira 模块...我已经完成了以下工作,但现在我被卡住了;

从 jira 导入 JIRA

server = {"server" : "https://jira.pxr5.hw"}
login = ('bob', 'dave')

jira = JIRA (options = server, basic_auth = login)

myProject = jira.project ("QSC")

for eachVersion in myProject.versions:
    print eachVersion.name + " - " + eachVersion.id

这会产生预期的输出;

Release 0 - 10518
Release 0.1 - 10602
Release 0.2 - 10603
Release 1.0 - 10519
Release 2.0 - 10520
Release 3.0 - 10521
closed - 10616
work complete - 10617

从我找到的文档中,我看不出如何进一步返回任何内容,我的意思是每个版本下的故事以及(它们存在的地方)我提出的错误。

你能帮忙吗?感谢您的关注。

【问题讨论】:

    标签: jira python-jira


    【解决方案1】:

    我最终到了那里...有点...这是我通过取消选择“原始”属性找到的解决方案...

    from jira import JIRA
    import sys
    
    userName = "Dave"
    userPassword = "Bob"
    
    server = {"server" : "https://jira.pxr5.hw"}
    login = (userName, userPassword)
    
    # Open a link to Jira
    jira = JIRA (options = server, basic_auth = login)
    
    # Return an object comprising the project we're working on
    myProject = jira.project ("quark")
    
    # Get a list of the releases in the project.  Notice that the version
    # has to be surrounded by single quotes as it may have spaces in it
    for eachVersion in myProject.versions:
        jqlStatement = "project=quark AND fixVersion='" + eachVersion.name + "'"
        print eachVersion.name
    
        # Get a list of stories accociated with each release of the project
        theStories = jira.search_issues (jqlStatement)
    
        # Go through each story in the current release
        for eachStory in theStories:
            # The story is indented one tab with it's ID and summary name
            print "\t" + eachStory.raw["key"] + " " +  eachStory.raw["fields"]["summary"]
    
            # Now get a list of issue links and go through each one
            issueLinks = eachStory.raw["fields"]["issuelinks"]
            for eachLink in issueLinks:
                print "\t\t" +  eachLink["inwardIssue"]["key"] + " " + \
                            eachLink["inwardIssue"]["fields"]["summary"]
    

    【讨论】:

    • 这行得通,但它要求您搜索每个版本的数据库。如果你有很多问题,它会很慢。如果您的大部分或所有问题都与 fixVersion 相关联,那么获取完整的问题列表并创建一个以 fixVersion 作为键并以与该 fixVersion 相关联的问题列表作为值的字典会更快。此外,您可以使用 .fields 对象获取字段值:eachStory.fields.key 和 eachStory.fields.summary 将返回您想要的值
    猜你喜欢
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    相关资源
    最近更新 更多