cucumber-reports: Add support for new options

Change-Id: Ia447c8ab95d6ea9782ba0092c42b95571625b97f
Co-Authored-By: Anil Belur <askb23@gmail.com>
Signed-off-by: Tan Heng Yeow <E0032242@u.nus.edu>
Signed-off-by: Anil Belur <askb23@gmail.com>
This commit is contained in:
tanhengyeow 2018-09-02 20:13:49 +08:00 committed by Anil Belur
parent 02e85408f0
commit 2914c7a773
No known key found for this signature in database
GPG Key ID: 0FAA11C1B55BFA62
4 changed files with 90 additions and 1 deletions

View File

@ -1361,6 +1361,23 @@ def cucumber_reports(registry, xml_parent, data):
(default false)
:arg bool parallel-testing: Run same test in parallel for multiple devices
(default false)
:arg int failed-steps-number: Maximum number of failed steps above which
build result is changed (default 0)
:arg int skipped-steps-number: Maximum number of skipped steps above which
build result is changed (default 0)
:arg int pending-steps-number: Maximum number of pending steps above which
build result is changed (default 0)
:arg int undefined-steps-number: Maximum number of undefined steps above
which build result is changed (default 0)
:arg int failed-scenarios-number: Maximum number of failed scenarios above
which build result is changed (default 0)
:arg int failed-features-number: Maximum number of failed features above
which build result is changed (default 0)
:arg list build-status: Build result to which the build should be set
when the report becomes failed or unstable (default '')
:arg int trends-limit: Number of past reports that should be presented.
Zero means unlimited number of builds (default 0)
:arg list sorting-method: Result sorting order (default 'NATURAL')
Full example:
@ -1379,6 +1396,8 @@ def cucumber_reports(registry, xml_parent, data):
'CucumberReportPublisher')
cucumber_reports.set('plugin', 'cucumber-reports')
valid_build_status = ['', 'UNSTABLE', 'FAILURE']
valid_sorting_method = ['NATURAL', 'ALPHABETICAL']
mappings = [
('json-reports-path', 'jsonReportDirectory', ''),
('plugin-url-path', 'pluginUrlPath', ''),
@ -1390,11 +1409,37 @@ def cucumber_reports(registry, xml_parent, data):
('missing-fails', 'missingFails', False),
('no-flash-charts', 'noFlashCharts', False),
('ignore-failed-tests', 'ignoreFailedTests', False),
('parallel-testing', 'parallelTesting', False)
('parallel-testing', 'parallelTesting', False),
('failed-steps-number', 'failedStepsNumber', 0),
('skipped-steps-number', 'skippedStepsNumber', 0),
('pending-steps-number', 'pendingStepsNumber', 0),
('undefined-steps-number', 'undefinedStepsNumber', 0),
('failed-scenarios-number', 'failedScenariosNumber', 0),
('failed-features-number', 'failedFeaturesNumber', 0),
('build-status', 'buildStatus', '', valid_build_status),
('trends-limit', 'trendsLimit', 0),
('sorting-method', 'sortingMethod', 'NATURAL', valid_sorting_method),
]
helpers.convert_mapping_to_xml(
cucumber_reports, data, mappings, fail_required=True)
if 'sorting-values' in data:
format_dict = {
'classifications': 'net.masterthought.jenkins'
'.CucumberReportPublisher_-Classification'
}
classifications_tag = XML.SubElement(
cucumber_reports, 'classifications')
for values in data['sorting-values']:
for value, params in values.items():
cucumber_report_publisher = XML.SubElement(
classifications_tag, format_dict.get('classifications'))
XML.SubElement(
cucumber_report_publisher, 'key').text = params.get('key')
XML.SubElement(
cucumber_report_publisher, 'value').text = params.get(
'value')
def cucumber_testresult(registry, xml_parent, data):
"""yaml: cucumber-testresult

View File

@ -13,6 +13,25 @@
<noFlashCharts>true</noFlashCharts>
<ignoreFailedTests>true</ignoreFailedTests>
<parallelTesting>true</parallelTesting>
<failedStepsNumber>1</failedStepsNumber>
<skippedStepsNumber>2</skippedStepsNumber>
<pendingStepsNumber>3</pendingStepsNumber>
<undefinedStepsNumber>4</undefinedStepsNumber>
<failedScenariosNumber>5</failedScenariosNumber>
<failedFeaturesNumber>6</failedFeaturesNumber>
<buildStatus>UNSTABLE</buildStatus>
<trendsLimit>7</trendsLimit>
<sortingMethod>ALPHABETICAL</sortingMethod>
<classifications>
<net.masterthought.jenkins.CucumberReportPublisher_-Classification>
<key>classification key 1</key>
<value>classification value 1</value>
</net.masterthought.jenkins.CucumberReportPublisher_-Classification>
<net.masterthought.jenkins.CucumberReportPublisher_-Classification>
<key>classification key 2</key>
<value>classification value 2</value>
</net.masterthought.jenkins.CucumberReportPublisher_-Classification>
</classifications>
</net.masterthought.jenkins.CucumberReportPublisher>
</publishers>
</project>

View File

@ -11,3 +11,19 @@ publishers:
no-flash-charts: true
ignore-failed-tests: true
parallel-testing: true
failed-steps-number: 1
skipped-steps-number: 2
pending-steps-number: 3
undefined-steps-number: 4
failed-scenarios-number: 5
failed-features-number: 6
build-status: UNSTABLE
trends-limit: 7
sorting-method: ALPHABETICAL
sorting-values:
- key-value-pair:
key: classification key 1
value: classification value 1
- key-value-pair:
key: classification key 2
value: classification value 2

View File

@ -13,6 +13,15 @@
<noFlashCharts>false</noFlashCharts>
<ignoreFailedTests>false</ignoreFailedTests>
<parallelTesting>false</parallelTesting>
<failedStepsNumber>0</failedStepsNumber>
<skippedStepsNumber>0</skippedStepsNumber>
<pendingStepsNumber>0</pendingStepsNumber>
<undefinedStepsNumber>0</undefinedStepsNumber>
<failedScenariosNumber>0</failedScenariosNumber>
<failedFeaturesNumber>0</failedFeaturesNumber>
<buildStatus/>
<trendsLimit>0</trendsLimit>
<sortingMethod>NATURAL</sortingMethod>
</net.masterthought.jenkins.CucumberReportPublisher>
</publishers>
</project>