Jenkins管道-Laravel单元测试

时间:2020-04-27 19:55:09

标签: laravel docker jenkins jenkins-pipeline dockerfile

我已经开始了我的laravel项目,我正在尝试对代码进行单元测试以及使用jankins测试数据库连接性,这是我的 Jenkinsfile 以及我的配置方式:

pipeline {
    agent {
        dockerfile true
    }
    stages {
        stage("Build") {
            steps {
                sh 'php --version'
                sh 'composer install'
                sh 'composer --version'
                sh 'cp .env.example .env'
                sh 'php artisan key:generate'
            }
        }
        stage("Unit test") {
            steps {
                script {
                    docker.image('mysql:5.7').withRun('-e "MYSQL_DATABASE=testing" -e "MYSQL_ROOT_PASSWORD=root"') { c ->
                        docker.image('mysql:5').inside("--link ${c.id}:db") {
                            /* Wait until mysql service is up */
                            sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
                        }
                        sh "./vendor/bin/phpunit"
                    }
                }
            }
        }
    }
}

单元测试阶段始终会出错并且无法完成,请问为什么?

所有由Docker配置的项目。

1 个答案:

答案 0 :(得分:0)

尝试将其添加到您的dockerfile中:“ apt-get install -y libltdl7”。或者只是将其他“ libltdl7”添加到您现有的安装语句中。

我已经更新了您提供的dockerfile(未经测试):

FROM php:7.3.1-fpm-stretch 

RUN apt-get update \
    && apt-get install -y libmemcached-dev zlib1g-dev libssl-dev wget curl vim libltdl7

RUN apt-get install -y git zip unzip jpegoptim optipng pngquant gifsicle 

RUN apt-get update \
    && apt-get install -y libpng-dev libjpeg62-turbo-dev libfreetype6-dev 

RUN docker-php-ext-install gd mbstring bcmath pdo pdo_mysql 

WORKDIR /usr/local/etc/php/conf.d/ 

RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer 

WORKDIR /var/www/html/