mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
ef0b1bd9dd
Starting point for that refactoring: it turned out that the tests was not independent. The DefaultValueCache which is a singleton keeps the status over various tests. Success of test execution depends on the order test execution. We have now * a dedicated rule for resetting the default value cache * JenkinsConfiguration rule (which already provided facilities for dealing with the configuration) has been replaced by a readYaml rule. From the PipelineUnit test framework we get already a handler for libraryResource, which is also part of the setup of the default values. * An auxiliar class which combines the * JenkinsSetupRule (registers the lib) * JenkinsReadYamlRule (provides facilities for Yaml parsing) * JenkinsResetDefaultValueCacheRule (cleans up the DefaultValueCache) into a rule chain. By using this rule chain we ensure that our setup OK (piper lib registered, and default config can be setup in a clean way).
70 lines
2.1 KiB
Groovy
70 lines
2.1 KiB
Groovy
|
|
import org.junit.Before
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.junit.rules.RuleChain
|
|
|
|
import com.lesfurets.jenkins.unit.BasePipelineTest
|
|
|
|
import static org.junit.Assert.assertEquals
|
|
import static org.junit.Assert.assertTrue
|
|
|
|
import util.JenkinsShellCallRule
|
|
import util.Rules
|
|
|
|
class MavenExecuteTest extends BasePipelineTest {
|
|
|
|
Map dockerParameters
|
|
|
|
private JenkinsShellCallRule jscr = new JenkinsShellCallRule(this)
|
|
|
|
@Rule
|
|
public RuleChain ruleChain = Rules.getCommonRules(this)
|
|
.around(jscr)
|
|
|
|
def mavenExecuteScript
|
|
def cpe
|
|
|
|
@Before
|
|
void init() {
|
|
|
|
dockerParameters = [:]
|
|
|
|
helper.registerAllowedMethod("dockerExecute", [Map.class, Closure.class],
|
|
{ parameters, closure ->
|
|
dockerParameters = parameters
|
|
closure()
|
|
})
|
|
|
|
mavenExecuteScript = loadScript("mavenExecute.groovy").mavenExecute
|
|
cpe = loadScript('commonPipelineEnvironment.groovy').commonPipelineEnvironment
|
|
}
|
|
|
|
@Test
|
|
void testExecuteBasicMavenCommand() throws Exception {
|
|
|
|
mavenExecuteScript.call(script: [commonPipelineEnvironment: cpe], goals: 'clean install')
|
|
assertEquals('maven:3.5-jdk-7', dockerParameters.dockerImage)
|
|
|
|
assert jscr.shell[0] == 'mvn clean install'
|
|
}
|
|
|
|
@Test
|
|
void testExecuteMavenCommandWithParameter() throws Exception {
|
|
|
|
mavenExecuteScript.call(
|
|
script: [commonPipelineEnvironment: cpe],
|
|
dockerImage: 'maven:3.5-jdk-8-alpine',
|
|
goals: 'clean install',
|
|
globalSettingsFile: 'globalSettingsFile.xml',
|
|
projectSettingsFile: 'projectSettingsFile.xml',
|
|
pomPath: 'pom.xml',
|
|
flags: '-o',
|
|
m2Path: 'm2Path',
|
|
defines: '-Dmaven.tests.skip=true')
|
|
assertEquals('maven:3.5-jdk-8-alpine', dockerParameters.dockerImage)
|
|
String mvnCommand = "mvn --global-settings 'globalSettingsFile.xml' -Dmaven.repo.local='m2Path' --settings 'projectSettingsFile.xml' --file 'pom.xml' -o clean install -Dmaven.tests.skip=true"
|
|
assertTrue(jscr.shell.contains(mvnCommand))
|
|
}
|
|
}
|