编译groovy项目并通过Jenkins运行JUnit测试

时间:2017-12-21 16:22:34

标签: jenkins gradle groovy junit

我google了很多年了,我放弃了,流行语Groovy + Jenkins带来了这么多假旗......

我有一个我在IntelliJ中开发的Groovy项目,它还包含一个带单元测试的JUnit.groovy。现在这是SoapUI的脚本,不需要Maven,Ant或Grails,但我希望能够在Jenkins上编译这些文件并在之后运行单元测试。是否可以在Jenkins上构建和测试这些文件?到目前为止,所有解决方案似乎都是我手动运行groovyc(提交我的存储库)然后在JUnit.class上运行JUnit。

所以在我开始深入挖掘并编写Maven,Grails或Ant文件之前,有没有其他方法不让我在我的git上推动GroovySDK?或者是否可能有一个简单的构建脚本,不涉及20个库和步骤来构建groovy源并运行JUnit测试:)?

我很明显是詹金斯的新手;),谢谢你的意见。

更新

  • 所有人都像我这样的新手,需要什么?首先我将本地源代码更改为gradle项目(记得在IntelliJ中激活AutoImport)并激活JUnit xml的创建,因为我不使用Maven并且系统处于“离线”状态,所以我们在git中都有libs所以我的build.gradle是:

    version '2.5-SNAPSHOT'
    apply plugin: 'groovy'
    dependencies {
        compile fileTree(dir: '../Library', include: ['*.jar'])
    }
    test {
        reports {
            junitXml.enabled = true
            html.enabled = true
        }               
    }
    sourceCompatibility = 1.8
    
  • 通过gradle wrapper

  • gradlew.bat为项目设置gradle包装器
  • 然后我在我的git中添加了post-commit - /.hooks/因此我的Jenkins会在通过curl http://jenkins:8080/git/notifyCommit?url=https://git.git&branches=dev提交时被触发
  • 终于在jenkins上建立了一个管道:

    #!groovy
    
    node {
      stage('Checkout') {
        git branch: 'dev', credentialsId: 'youwish', url: 'https://git.git'
      }
    
      stage('Build') {
        dir('./Modules') {
          gradle('clean')
          gradle('compileTestGroovy')
        }
      }
    
      stage('UnitTest') {
        dir('./Modules') {
          gradle('test')
          junit '/build/test-results/**/TEST-*.xml'
        }
      }
    
      stage('IntegrationTest') {
        stage('CodeTableDownload') {
          dir('./SoapUi') {
            bat 'AutoRun.bat'
            junit '/results/**/*-JUNIT.xml'
          }
        }
      }
    }
    
    def gradle(command) {
      bat "./gradlew.bat $command"
    }
    

1 个答案:

答案 0 :(得分:2)

有一个Groovy plugin for Jenkins可以让你在Jenkins上执行Groovy脚本。

但是,为什么不让像Gradle这样的东西进行构建并为你运行测试? Groovy的最小Gradle构建文件将同时执行:

apply plugin: 'groovy'

repositories {
    jcenter()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.4.12'
    testCompile 'junit:junit:4.12'
}

您不必提交GDK,只需声明依赖关系。