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

标签 jenkins gradle groovy junit

我用谷歌搜索了很长时间然后我放弃了,流行词 Groovy + Jenkins 带来了很多错误的标志......

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

因此,在我开始深入挖掘并编写 Maven、Grails 或 Ant 文件之前,是否有另一种方法不涉及在我的 git 上推送 GroovySDK?或者是否有一个简单的构建脚本,不涉及 20 个库和步骤来构建 groovy 源代码并运行 JUnit 测试:)?

我显然是 Jenkins 的新手 ;),感谢您的意见。

更新:

  • 那么对于像我这样的新手来说,需要什么?首先,我将本地源代码更改为 gradle 项目(记得在 IntelliJ 中激活 AutoImport)并激活 JUnit xml 的创建,由于我不使用 Maven 并且系统处于“离线”状态,所以无论如何我们在 git 中都有库所以我的 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 为项目设置 gradle 包装器对于gradlew.bat
  • 然后我添加了 post-commit在我的 git-/.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"
    }
    
  • 最佳答案

    有一个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,只需声明一个依赖项。

    关于jenkins - 编译 groovy 项目并通过 Jenkins 运行 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47928927/

    相关文章:

    插件更新后 Jenkins 严重错误

    git - 如何让slave系统访问Jenkins中的Git仓库

    centos 6.8错误上的android sdk构建工具25

    gradle - 使用Gradle Kotlin DSL在Gradle中进行样板项目配置

    java - 使用 gradle 编译 zip,包括由同级子项目实现的库

    Jenkins Active Choices 插件输入文本框不返回任何内容。为什么?

    linux - java.lang.NoSuchMethodError : No such DSL method 'bash' found among steps 错误

    gradle - 如何从docbook源创建sitemap.xml

    java - 如何通过groovy中的JIRA REST API使用组件名称获取组件ID

    groovy - 就在 Jenkins 管道步骤中运行 shell 脚本而言, ""“和 '' ”之间有什么区别?