Page History
Table of Contents |
---|
Iterating Issue
...
Changes to issues are registered in the Issue Activity, but it is not known in advance how many changes are going to be made. You can iterate a section over all the activities of an issue. This allows you to create a table that dynamically grows according to the number of existing activities. The notation is:
...
The title of the issue
...
Code Block | ||||
---|---|---|---|---|
| ||||
#{for activityEntries}
${ActivityEntries[n].Title}
${ActivityEntries[n].Summary}
${ActivityEntries[n].Content}
${ActivityEntries[n].Author}
${ActivityEntries[n].AuthorEmail}
${dateformat("dd-MM-yyyy HH:mm:ss"):ActivityEntries[n].Published}
${dateformat("dd-MM-yyyy HH:mm:ss"):ActivityEntries[n].Updated}
${ActivityEntries[n].Categories}
#{end}
or
#{for <VariableName>=ActivityEntriesCount}
Content and Issue Mappings. Example: ${ActivityEntries[VariableName].Field}
#{end} |
Info |
---|
We suggest that you use the html function to render the data because almost all content is HTML, e.g., ${html:ActivityEntries[n].Title} |
Below is an example of using the Activity iteration in a Word template:
or
Below is an example of using the Activity iteration in an Excel template:
or
Iterating Issue Comments
Because it is not known in advance how many comments exist for an issue, you can iterate a section over all the comments on an issue. This allows you to create a table that dynamically grows according to the number of existing comments. The notation is:
...
Code Block | ||
---|---|---|
| ||
Total number of associated test steps: ${TestStepsCount} // Iterating each test step #{for teststeps} Action: ${TestSteps[n].Action} Data: ${TestSteps[n].Data} Expected Result: ${TestSteps[n].ExpectedResult} Step Number: ${TestSteps[n].StepNumber} // Iterating over attachments for each test step #{for l=TestSteps[n].AttachmentsCount} Id: ${TestSteps[n].Attachments[l].Id} Name: ${TestSteps[n].Attachments[l].Name} Image: ${TestSteps[n].Attachments[l].ImageAttachment} FileURL: ${TestSteps[n].Attachments[l].FileURL} #{end} #{end} or // Iterating each test step #{for j=TestStepsCount} Action: ${TestSteps[j].Action} Data: ${TestSteps[j].Data} Expected Result: ${TestSteps[j].ExpectedResult} Step Number: ${TestSteps[j].StepNumber} // Iterating over attachments for each test step #{for l=TestSteps[j].AttachmentsCount} Id: ${TestSteps[j].Attachments[l].Id} Name: ${TestSteps[j].Attachments[l].Name} Image: ${TestSteps[n].Attachments[l].ImageAttachment} FileURL: ${TestSteps[n].Attachments[l].FileURL} #{end} #{end} |
...
Code Block | ||
---|---|---|
| ||
Total number of associated test runs: ${TestRunsCount} // Iterating each test run #{for testruns} Assignee Id: ${TestRuns[n].AssigneeId} Key: ${TestRuns[n].Key} Summary: ${TestRuns[n].Summary} Comment: ${TestRuns[n].Comment} Generic Test Definition: ${TestRuns[n].Generic Test Definition} Cucumber Scenario: ${TestRuns[n].Cucumber Scenario} Executed by: ${TestRuns[n].Executed By} Execution Status: ${TestRuns[n].Execution Status} Started on: ${TestRuns[n].Started On} Finished on: ${TestRuns[n].Finished On} // Iterating over execution evidences for each test run Execution Evidences Total: ${TestRuns[n].ExecutionEvidencesCount} #{for m=TestRuns[n].ExecutionEvidencesCount} Id: ${TestRuns[n].ExecutionEvidences[m].Id} Name: ${TestRuns[n].ExecutionEvidences[m].Name} Evidence: ${TestRuns[n].ExecutionEvidences[m].Evidence} #{end} // Iterating over execution defects for each test run Execution Defects Total: ${TestRuns[n].ExecutionDefectsCount} #{for m=TestRuns[n].ExecutionDefectsCount} Id: ${TestRuns[n].ExecutionDefects[m].Id} Description: ${TestRuns[n].ExecutionDefects[m].Description} Key: ${TestRuns[n].ExecutionDefects[m].Key} Summary: ${TestRuns[n].ExecutionDefects[m].Summary} #{end} // Iterating over test steps for each test run Test Steps Total: ${TestRuns[n].TestStepsCount} #{for m=TestRuns[n].TestStepsCount} Action: ${TestRuns[n].TestSteps[m].Action} Comment: ${TestRuns[n].TestSteps[m].Comment} Data: ${TestRuns[n].TestSteps[m].Data} Expected Result: ${TestRuns[n].TestSteps[m].ExpectedResult} Actual Result: ${TestRuns[n].TestSteps[m].ActualResult} Status: ${TestRuns[n].TestSteps[m].Status} Step Number: ${TestRuns[n].TestSteps[m].StepNumber} // Iterating over attachments for each test step #{for l=TestRuns[n].TestSteps[m].AttachmentsCount} Id: ${TestRuns[n].TestSteps[m].Attachments[l].Id} Name: ${TestRuns[n].TestSteps[m].Attachments[l].Name} Image: ${TestRuns[n].TestSteps[m].Attachments[l].Image} FileURL: ${TestRuns[n].TestSteps[m].Attachments[l].FileURL} #{end} // Iterating over evidences for each test step #{for l=TestRuns[n].TestSteps[m].EvidencesCount} Id: ${TestRuns[n].TestSteps[m].Evidences[l].Id} Name: ${TestRuns[n].TestSteps[m].Evidences[l].Name} Evidence: ${TestRuns[n].TestSteps[m].Evidences[l].Evidence} #{end} // Iterating over defects for each test step #{for l=TestRuns[n].TestSteps[m].DefectsCount} Description: ${TestRuns[n].TestSteps[m].Defects[l].Description} Id: ${TestRuns[n].TestSteps[m].Defects[l].Id} Key: ${TestRuns[n].TestSteps[m].Defects[l].Key} Summary: ${TestRuns[n].TestSteps[m].Defects[l].Summary} #{end} #{end} #{end} |
...