2017-07-10 3 views
0

La société pour laquelle je travaille utilise Jira pour prendre en charge la capture d'exigence & phases de test d'un projet. Nous attribuons des histoires (c'est-à-dire des exigences) à une version. En tant qu'Ingénieur Test, je soulève des bugs que je mentionne ensuite dans l'histoire comme "Est Bloqué Par".Jira: Production d'un rapport contenant les histoires et les problèmes de blocage associés à une version

J'ai besoin de créer un rapport qui répertorie chacune des versions et des histoires associées à cette version. Comme je soulève des bugs, j'ai besoin que le rapport soit aussi rempli par les bugs (ou en fait tout autre problème soulevé).

Je ne peux pas voir une façon de faire cela directement dans Jira mais j'ai trouvé un module Jira pour Python ... J'ai le travail suivant mais maintenant je suis coincé;

d'importation 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 

Cela produit le résultat attendu;

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 

De la documentation que j'ai trouvé, je ne vois pas comment retourner quelque chose de plus, je veux dire les histoires sous chaque version et (où ils existent) les bugs que j'ai soulevées.

Pouvez-vous aider? Merci de votre attention.

Répondre

0

je suis arrivé à la fin ... Un peu ... Voici une solution que je trouve par détricotage la propriété « brut » ...

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"] 
+0

Cela fonctionne, mais il vous oblige à faire une recherche de la base de données pour chaque version. Si vous avez beaucoup de problèmes, ce sera plutôt lent. Si la plupart ou la totalité de vos problèmes sont associés à un correctifVersion, il serait plus rapide d'obtenir la liste complète des problèmes et de créer un dictionnaire avec le correctif fixVersion comme clé et une liste de problèmes associés à fixVersion comme valeur. En outre, vous pouvez obtenir les valeurs de champ en utilisant l'objet .fields: eachStory.fields.key et eachStory.fields.summary retournera la valeur que vous voulez – ZeddZull