2015-12-02 2 views
2

В идеале я хотел бы иметь возможность запускать сценарий с каким-то модульным тестом, прежде чем я его выполню на Jenkins.Может быть проверен сценарий DSL

Есть ли способ проверить сценарий работы DSL, отличный от того, чтобы запустить jenkins?

ответ

6

Помимо примеров в job-dsl-gradle-example, вы также можете сделать еще один шаг и написать тесты для отдельных файлов или заданий. Например, давайте предположим, у вас есть файл конфигурации задания, расположенной на рабочих местах/deployJob.groovy

import javaposse.jobdsl.dsl.DslScriptLoader 
import javaposse.jobdsl.dsl.MemoryJobManagement 
import javaposse.jobdsl.dsl.ScriptRequest 
import spock.lang.Specification 

class TestDeployJobs extends Specification { 

    def 'test basic job configuration'() { 
     given: 
     URL scriptURL = new File('jobs').toURI().toURL() 
     ScriptRequest scriptRequest = new ScriptRequest('deployJob.groovy', null, scriptURL) 
     MemoryJobManagement jobManagement = new MemoryJobManagement() 

     when: 
     DslScriptLoader.runDslEngine(scriptRequest, jobManagement) 

     then: 
     jobManagement.savedConfigs.each { String name, String xml -> 
      with(new XmlParser().parse(new StringReader(xml))) { 
       // Make sure jobs only run manually 
       triggers.'hudson.triggers.TimerTrigger'.spec.text().isEmpty() 
       // only deploy every environment once at a time 
       concurrentBuild.text().equals('false') 
       // do a workspace cleanup 
       buildWrappers.'hudson.plugins.ws__cleanup.PreBuildCleanup' 
       // make sure masked passwords are active 
       !buildWrappers.'com.michelin.cio.hudson.plugins.maskpasswords.MaskPasswordsBuildWrapper'.isEmpty() 
      } 
     } 
    } 
} 

Таким образом, вы можете пройти через каждый узел XML вы хотите, чтобы убедиться, чтобы все нужные значения, установленные.

Смежные вопросы