Add support for cucumber reports plugin
This plugin creates pretty cucumber-jvm html reports on jenkins Change-Id: Ia9673a8d290bd37bd38a7c3ab3545c751128f4c2 story: 2000226
This commit is contained in:
parent
c62b0a10d0
commit
c3c51845ad
@ -977,6 +977,75 @@ def junit(parser, xml_parent, data):
|
|||||||
'hudson.plugins.measurement__plots.TestDataPublisher')
|
'hudson.plugins.measurement__plots.TestDataPublisher')
|
||||||
|
|
||||||
|
|
||||||
|
def cucumber_reports(parser, xml_parent, data):
|
||||||
|
"""yaml: cucumber-reports
|
||||||
|
This plugin creates pretty cucumber-jvm html reports on jenkins.
|
||||||
|
|
||||||
|
Requires the Jenkins :jenkins-wiki:`cucumber reports
|
||||||
|
<Cucumber+Reports+Plugin>`.
|
||||||
|
|
||||||
|
:arg str json-reports-path: The path relative to the workspace of
|
||||||
|
the json reports generated by cucumber-jvm e.g. target - leave
|
||||||
|
empty to scan the whole workspace (default '')
|
||||||
|
:arg str file-include-pattern: include pattern (default '')
|
||||||
|
:arg str file-exclude-pattern: exclude pattern (default '')
|
||||||
|
:arg str plugin-url-path: The path to the jenkins user content url
|
||||||
|
e.g. http://host:port[/jenkins/]plugin - leave empty if jenkins
|
||||||
|
url root is host:port (default '')
|
||||||
|
:arg bool skipped-fails: skipped steps to cause the build to fail
|
||||||
|
(default false)
|
||||||
|
:arg bool pending-fails: pending steps to cause the build to fail
|
||||||
|
(default false)
|
||||||
|
:arg bool undefined-fails: undefined steps to cause the build to fail
|
||||||
|
(default false)
|
||||||
|
:arg bool missing-fails: missing steps to cause the build to fail
|
||||||
|
(default false)
|
||||||
|
:arg bool no-flash-charts: use javascript charts instead of flash charts
|
||||||
|
(default false)
|
||||||
|
:arg bool ignore-failed-tests: entire build to fail when these tests fail
|
||||||
|
(default false)
|
||||||
|
:arg bool parallel-testing: run same test in parallel for multiple devices
|
||||||
|
(default false)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. literalinclude::
|
||||||
|
/../../tests/publishers/fixtures/cucumber_reports001.yaml
|
||||||
|
:language: yaml
|
||||||
|
|
||||||
|
.. literalinclude::
|
||||||
|
/../../tests/publishers/fixtures/cucumber_reports002.yaml
|
||||||
|
:language: yaml
|
||||||
|
|
||||||
|
"""
|
||||||
|
cucumber_reports = XML.SubElement(xml_parent,
|
||||||
|
'net.masterthought.jenkins.'
|
||||||
|
'CucumberReportPublisher')
|
||||||
|
|
||||||
|
XML.SubElement(cucumber_reports, 'jsonReportDirectory').text = str(
|
||||||
|
data.get('json-reports-path', ''))
|
||||||
|
XML.SubElement(cucumber_reports, 'pluginUrlPath').text = str(
|
||||||
|
data.get('plugin-url-path', ''))
|
||||||
|
XML.SubElement(cucumber_reports, 'fileIncludePattern').text = str(
|
||||||
|
data.get('file-include-pattern', ''))
|
||||||
|
XML.SubElement(cucumber_reports, 'fileExcludePattern').text = str(
|
||||||
|
data.get('file-exclude-pattern', ''))
|
||||||
|
XML.SubElement(cucumber_reports, 'skippedFails').text = str(
|
||||||
|
data.get('skipped-fails', False)).lower()
|
||||||
|
XML.SubElement(cucumber_reports, 'pendingFails').text = str(
|
||||||
|
data.get('pending-fails', False)).lower()
|
||||||
|
XML.SubElement(cucumber_reports, 'undefinedFails').text = str(
|
||||||
|
data.get('undefined-fails', False)).lower()
|
||||||
|
XML.SubElement(cucumber_reports, 'missingFails').text = str(
|
||||||
|
data.get('missing-fails', False)).lower()
|
||||||
|
XML.SubElement(cucumber_reports, 'noFlashCharts').text = str(
|
||||||
|
data.get('no-flash-charts', False)).lower()
|
||||||
|
XML.SubElement(cucumber_reports, 'ignoreFailedTests').text = str(
|
||||||
|
data.get('ignore-failed-tests', False)).lower()
|
||||||
|
XML.SubElement(cucumber_reports, 'parallelTesting').text = str(
|
||||||
|
data.get('parallel-testing', False)).lower()
|
||||||
|
|
||||||
|
|
||||||
def cucumber_testresult(parser, xml_parent, data):
|
def cucumber_testresult(parser, xml_parent, data):
|
||||||
"""yaml: cucumber-testresult
|
"""yaml: cucumber-testresult
|
||||||
Publish cucumber test results.
|
Publish cucumber test results.
|
||||||
|
@ -164,6 +164,7 @@ jenkins_jobs.publishers =
|
|||||||
copy-to-master=jenkins_jobs.modules.publishers:copy_to_master
|
copy-to-master=jenkins_jobs.modules.publishers:copy_to_master
|
||||||
coverage=jenkins_jobs.modules.publishers:coverage
|
coverage=jenkins_jobs.modules.publishers:coverage
|
||||||
cppcheck=jenkins_jobs.modules.publishers:cppcheck
|
cppcheck=jenkins_jobs.modules.publishers:cppcheck
|
||||||
|
cucumber-reports=jenkins_jobs.modules.publishers:cucumber_reports
|
||||||
cucumber-testresult=jenkins_jobs.modules.publishers:cucumber_testresult
|
cucumber-testresult=jenkins_jobs.modules.publishers:cucumber_testresult
|
||||||
description-setter=jenkins_jobs.modules.publishers:description_setter
|
description-setter=jenkins_jobs.modules.publishers:description_setter
|
||||||
disable-failed-job=jenkins_jobs.modules.publishers:disable_failed_job
|
disable-failed-job=jenkins_jobs.modules.publishers:disable_failed_job
|
||||||
|
18
tests/publishers/fixtures/cucumber_reports001.xml
Normal file
18
tests/publishers/fixtures/cucumber_reports001.xml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<project>
|
||||||
|
<publishers>
|
||||||
|
<net.masterthought.jenkins.CucumberReportPublisher>
|
||||||
|
<jsonReportDirectory/>
|
||||||
|
<pluginUrlPath>http://example.com/</pluginUrlPath>
|
||||||
|
<fileIncludePattern/>
|
||||||
|
<fileExcludePattern/>
|
||||||
|
<skippedFails>false</skippedFails>
|
||||||
|
<pendingFails>false</pendingFails>
|
||||||
|
<undefinedFails>false</undefinedFails>
|
||||||
|
<missingFails>false</missingFails>
|
||||||
|
<noFlashCharts>false</noFlashCharts>
|
||||||
|
<ignoreFailedTests>false</ignoreFailedTests>
|
||||||
|
<parallelTesting>false</parallelTesting>
|
||||||
|
</net.masterthought.jenkins.CucumberReportPublisher>
|
||||||
|
</publishers>
|
||||||
|
</project>
|
3
tests/publishers/fixtures/cucumber_reports001.yaml
Normal file
3
tests/publishers/fixtures/cucumber_reports001.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
publishers:
|
||||||
|
- cucumber-reports:
|
||||||
|
plugin-url-path: http://example.com/
|
18
tests/publishers/fixtures/cucumber_reports002.xml
Normal file
18
tests/publishers/fixtures/cucumber_reports002.xml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<project>
|
||||||
|
<publishers>
|
||||||
|
<net.masterthought.jenkins.CucumberReportPublisher>
|
||||||
|
<jsonReportDirectory>path</jsonReportDirectory>
|
||||||
|
<pluginUrlPath>http://example.com/</pluginUrlPath>
|
||||||
|
<fileIncludePattern>**/*.json</fileIncludePattern>
|
||||||
|
<fileExcludePattern>badfile.txt</fileExcludePattern>
|
||||||
|
<skippedFails>true</skippedFails>
|
||||||
|
<pendingFails>true</pendingFails>
|
||||||
|
<undefinedFails>true</undefinedFails>
|
||||||
|
<missingFails>true</missingFails>
|
||||||
|
<noFlashCharts>true</noFlashCharts>
|
||||||
|
<ignoreFailedTests>true</ignoreFailedTests>
|
||||||
|
<parallelTesting>true</parallelTesting>
|
||||||
|
</net.masterthought.jenkins.CucumberReportPublisher>
|
||||||
|
</publishers>
|
||||||
|
</project>
|
13
tests/publishers/fixtures/cucumber_reports002.yaml
Normal file
13
tests/publishers/fixtures/cucumber_reports002.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
publishers:
|
||||||
|
- cucumber-reports:
|
||||||
|
json-reports-path: path
|
||||||
|
plugin-url-path: http://example.com/
|
||||||
|
file-include-pattern: '**/*.json'
|
||||||
|
file-exclude-pattern: badfile.txt
|
||||||
|
skipped-fails: true
|
||||||
|
pending-fails: true
|
||||||
|
undefined-fails: true
|
||||||
|
missing-fails: true
|
||||||
|
no-flash-charts: true
|
||||||
|
ignore-failed-tests: true
|
||||||
|
parallel-testing: true
|
Loading…
Reference in New Issue
Block a user