use perfReport step

This commit is contained in:
Christopher Fenner
2018-02-19 10:26:50 +01:00
parent 69df5dc5e5
commit 26bbee5fb4
2 changed files with 33 additions and 15 deletions
+26 -12
View File
@@ -26,10 +26,6 @@ class TestsPublishResultsTest extends BasePipelineTest {
archiveStepPatterns = []
// prepare checkResultsPublish step
testsPublishResultsScript = loadScript('testsPublishResults.groovy').testsPublishResults
// add handler for generic step call
helper.registerAllowedMethod('step', [Map.class], {
parameters -> publisherStepOptions[parameters.$class] = parameters
})
helper.registerAllowedMethod('junit', [Map.class], {
parameters -> publisherStepOptions['junit'] = parameters
})
@@ -39,6 +35,9 @@ class TestsPublishResultsTest extends BasePipelineTest {
helper.registerAllowedMethod('cobertura', [Map.class], {
parameters -> publisherStepOptions['cobertura'] = parameters
})
helper.registerAllowedMethod('perfReport', [Map.class], {
parameters -> publisherStepOptions['jmeter'] = parameters
})
helper.registerAllowedMethod('archiveArtifacts', [Map.class], {
parameters -> archiveStepPatterns.push(parameters.artifacts)
})
@@ -52,7 +51,7 @@ class TestsPublishResultsTest extends BasePipelineTest {
assertTrue('WarningsPublisher options not empty', publisherStepOptions.junit == null)
assertTrue('PmdPublisher options not empty', publisherStepOptions.jacoco == null)
assertTrue('DryPublisher options not empty', publisherStepOptions.cobertura == null)
assertTrue('FindBugsPublisher options not empty', publisherStepOptions.PerformancePublisher == null)
assertTrue('FindBugsPublisher options not empty', publisherStepOptions.jmeter == null)
}
@Test
@@ -63,7 +62,7 @@ class TestsPublishResultsTest extends BasePipelineTest {
assertTrue('WarningsPublisher options not empty', publisherStepOptions.junit == null)
assertTrue('PmdPublisher options not empty', publisherStepOptions.jacoco == null)
assertTrue('DryPublisher options not empty', publisherStepOptions.cobertura == null)
assertTrue('FindBugsPublisher options not empty', publisherStepOptions.PerformancePublisher == null)
assertTrue('FindBugsPublisher options not empty', publisherStepOptions.jmeter == null)
}
@Test
@@ -77,7 +76,7 @@ class TestsPublishResultsTest extends BasePipelineTest {
// ensure nothing else is published
assertTrue('JaCoCo options are not empty', publisherStepOptions.jacoco == null)
assertTrue('Cobertura options are not empty', publisherStepOptions.cobertura == null)
assertTrue('JMeter options are not empty', publisherStepOptions.PerformancePublisher == null)
assertTrue('JMeter options are not empty', publisherStepOptions.jmeter == null)
}
@Test
@@ -92,21 +91,36 @@ class TestsPublishResultsTest extends BasePipelineTest {
'**/target/coverage/cobertura-coverage.xml', publisherStepOptions.cobertura.coberturaReportFile)
// ensure nothing else is published
assertTrue('JUnit options are not empty', publisherStepOptions.junit == null)
assertTrue('JMeter options are not empty', publisherStepOptions.PerformancePublisher == null)
assertTrue('JMeter options are not empty', publisherStepOptions.jmeter == null)
}
@Ignore("failes due do class not found exception of JMeter parser")
@Test
void testPublishJMeterWithDefaultSettings() throws Exception {
testsPublishResultsScript.call(jmeter: true)
assertTrue('JMeter options are empty', publisherStepOptions.PerformancePublisher != null)
//assertEquals('JMeter default pattern not set', '**/*.jtl',
// publisherStepOptions.PerformancePublisher.pattern])
assertTrue('JMeter options are empty', publisherStepOptions.jmeter != null)
assertEquals('JMeter default pattern not set',
'**/*.jtl', publisherStepOptions.jmeter.sourceDataFiles)
// ensure nothing else is published
assertTrue('JUnit options are not empty', publisherStepOptions.junit == null)
assertTrue('JaCoCo options are not empty', publisherStepOptions.jacoco == null)
assertTrue('Cobertura options are not empty', publisherStepOptions.cobertura == null)
}
@Test
void testPublishUnitTestsWithCustomSettings() throws Exception {
testsPublishResultsScript.call(junit: [pattern: 'fancy/file/path', archive: true, active: true])
assertTrue('JUnit options are empty', publisherStepOptions.junit != null)
// ensure default patterns are set
assertEquals('JUnit pattern not set correct',
'fancy/file/path', publisherStepOptions.junit.testResults)
assertEquals('JUnit default pattern not set correct',
'fancy/file/path', publisherStepOptions.junit.testResults)
// ensure nothing else is published
assertTrue('JaCoCo options are not empty', publisherStepOptions.jacoco == null)
assertTrue('Cobertura options are not empty', publisherStepOptions.cobertura == null)
assertTrue('JMeter options are not empty', publisherStepOptions.jmeter == null)
}
}
+7 -3
View File
@@ -7,6 +7,9 @@ import com.sap.piper.MapUtils
import groovy.transform.Field
@Field def STEP_NAME = 'testsPublishResults'
@Field List TOOLS = [
'junit','jacoco','cobertura','jmeter'
]
/**
* testResultsPublish
*
@@ -23,7 +26,7 @@ def call(Map parameters = [:]) {
final Map stepDefaults = ConfigurationLoader.defaultStepConfiguration(script, STEP_NAME)
final Map stepConfiguration = ConfigurationLoader.stepConfiguration(script, STEP_NAME)
List configurationKeys = ['junit','jacoco','cobertura','jmeter']
List configurationKeys = TOOLS
Map configuration = ConfigurationMerger.merge(
parameters, configurationKeys,
stepConfiguration, configurationKeys,
@@ -124,7 +127,7 @@ def touchFiles(){
def archiveResults(archive, pattern, allowEmpty) {
if(archive){
echo "[${STAP_NAME}] archive ${pattern}"
echo "[${STEP_NAME}] archive ${pattern}"
archiveArtifacts artifacts: pattern, allowEmptyArchive: allowEmpty
}
}
@@ -132,7 +135,7 @@ def archiveResults(archive, pattern, allowEmpty) {
@NonCPS
def prepare(parameters){
// ensure tool maps are initialized correctly
for(String tool : ['junit','jacoco','cobertura','jmeter']){
for(String tool : TOOLS){
parameters[tool] = toMap(parameters[tool])
}
return parameters
@@ -148,4 +151,5 @@ def toMap(parameters){
parameters = [active: false]
else
parameters = [:]
return parameters
}