Jenkins管道-Laravel单元测试

Jenkins管道-Laravel单元测试,laravel,docker,jenkins,jenkins-pipeline,dockerfile,Laravel,Docker,Jenkins,Jenkins Pipeline,Dockerfile,我已经开始了我的laravel项目,我正在尝试对我的代码进行单元测试,并测试与jankins的db连接,这是我的Jenkins文件,以及我是如何配置它的: pipeline { agent { dockerfile true } stages { stage("Build") { steps { sh 'php --version' sh 'compos

我已经开始了我的laravel项目,我正在尝试对我的代码进行单元测试,并测试与jankins的db连接,这是我的Jenkins文件,以及我是如何配置它的:

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配置的所有项目。

尝试将此添加到Docker文件中:“apt get install-y libltdl7”。或者只需在现有安装语句中添加额外的“libltdl7”

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


尝试将此添加到dockerfile中:“apt get install-y libltdl7”。或者只需在现有安装语句中添加额外的“libltdl7”

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


您看到了什么错误?此错误
+docker run-d-e MYSQL\u DATABASE=testing-e DB\u USERNAME=root-e DB\u PASSWORD=root MYSQL:5.7 docker:加载共享库时出错:libltdl.so.7:无法打开共享对象文件:没有此类文件或目录脚本返回退出代码127
您可以发布docker文件吗?
来自php:7.3.1-fpm-stretch运行apt get update和apt get install-y libmemcached dev zlib1g dev libssl dev wget curl vim运行apt get install-y git zip解压jpegoptim optippng pngquant gifsicle运行apt get update和apt get install-y libpng dev libjpeg62 turbo dev libfreetype6 dev RUN docker php ext install gd mbstring bcmath pdo pdo\u mysql WORKDIR/usr/local/etc/php/conf.d/RUN curl-sShttps://getcomposer.org/installer |php&&mv composer.phar/usr/local/bin/composer WORKDIR/var/www/html/
您看到了什么错误?此错误
+docker run-d-e MYSQL\u DATABASE=testing-e DB\u USERNAME=root-e DB\u PASSWORD=root MYSQL:5.7 docker:加载共享库时出错:libltdl.so.7:无法打开共享对象文件:没有这样的文件或目录脚本返回退出代码127
您可以发布docker文件吗?
来自php:7.3.1-fpm-stretch运行apt get update&&apt get install-y libmemcached dev zlib1g dev libssl dev wget curl vim RUN apt get install-y git zip解压jpegoptim optim png pngquant gissicle运行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-sShttps://getcomposer.org/installer |php&&mv composer.phar/usr/local/bin/composer WORKDIR/var/www/html/
我已经这么做了,但不幸的是,我在运行测试时遇到了新的错误。运行此命令时=>./vendor/bin/phpunit
php\u network\u getaddresses:getaddrinfo失败:名称或服务未知(SQL:SHOW FULL TABLES WHERE table\u type='BASE table')
这不是您在询问时共享的错误。您看到的这个附加错误可能是因为您的环境中没有正确设置DB_主机。不过,您可能会遇到与单元测试相关的更大问题。您可能不应该在单元测试中实际进行DB调用,您应该研究模拟。我已经这样做了,但不幸的是,我在运行测试时遇到了新的错误。运行此命令时=>./vendor/bin/phpunit
php\u network\u getaddresses:getaddrinfo失败:名称或服务未知(SQL:SHOW FULL TABLES WHERE table\u type='BASE table')
这不是您在询问时共享的错误。您看到的这个附加错误可能是因为您的环境中没有正确设置DB_主机。不过,您可能会遇到与单元测试相关的更大问题。作为单元测试的一部分,您可能不应该实际进行DB调用,您应该研究模拟。
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/