Jenkins集成Ruby on Rails单元测试

发表于:

Jenkins集成Rails单元测试关键是安装ruby环境,jenkins可以通过插件安装ruby运行环境,但是安装的ruby版本是j-ruby,和我们使用的标准ruby有一定区别不推荐安装。
我们需要通过ruby版本控制工具安装rvm或者rbenv安装需要的ruby版本。这里选择rvm来安装。

安装rvm

我们只需要为jekins用户安装rvm, 不推荐安装全局的, 运行下面的命令安装:

 sudo su -lp jenkins
 gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
 curl -sSL https://get.rvm.io | bash -s stable
 echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bash_profile

测试rvm是否安装成功

  type rvm | head -1 # 返回 'rvm is a function' 表示安装成功

最后,配置一些必要的参数

  rvm_install_on_use_flag=1
  rvm_project_rvmrc=1
  rvm_gemset_create_on_use_flag=1

配置jenkins为rails项目添加执行脚本

添加一个普通的jenkins任务,在'Execute Shell Script'部分做如下设置:

    #!/bin/bash
    source "$HOME/.rvm/scripts/rvm"
    # Use the correct ruby
    [[ -s ".rvmrc" ]] && source .rvmrc
    # Set "fail on error" in bash
    set -e
    # Do any setup
    # e.g. possibly do 'rake db:migrate db:test:prepare' here
    bundle install
    rake db:test:prepare
    # Finally, run your tests
    rake

为rails项目配置数据库

如果之前没有为rails项目配置数据库,上面的脚本执行build会出错,我们可以在workspace下面设置数据库。

    sudo su -lp jenkins
    cd /var/lib/jenkins/workspace/Project_name
    vi config/database.yml #设置你的development和test数据库

上面步骤完成之后,就可以成功build一个ROR项目,执行包括单元测试和其他的各种rake任务了。