2017-09-29 85 views
0

我为Laravel 5.5项目(帖子底部的文件)设置了Gitlab CI管道,并且构建成功,但测试失败,因为PHPUnit与错误信息Gitlab CI -Laravel 5.5 - PHPUnit“Tests TestCase not found”

Fatal error: Class 'Tests\TestCase' not found in /builds/[User]/[Repo]/tests/Feature/DocumentTest.php on line 8

退出(显然,[用户]和[回购]是不是真正的价值,只是不想把它公开在这里)

我已经尝试过不同的东西,就像全局安装PHPUnit一样,以不同的方式调用PHPUnit,它都会以相同的错误信息结束。

PHPUnit在我的本地运行成功(不管我怎么称呼它,它总是有效的)。所以任何人都知道这里的问题可能是什么?

仅供参考这里的管道文件:

.gitlab-ci.yml

image: woohuiren/php-laravel-env:latest 

services: 
    - mysql:latest 
    - redis:4.0.2-alpine 

before_script: 
    - apk update 
    - docker-php-ext-install pcntl 

variables: 
    MYSQL_DATABASE: testdb 
    MYSQL_ROOT_PASSWORD: root 

stages: 
    - build 
    - test 

build_job: 
    stage: build 
    script: 
    - sh .gitlab-build.sh 
    artifacts: 
    paths: 
     - vendor/ 
     - bootstrap/ 
     - composer.phar 
     - .env 
    tags: 
    - docker 

test_job: 
    stage: test 
    dependencies: 
    - build_job 
    script: 
    - sh .gitlab-ci.sh 
    tags: 
    - docker 

.gitlab-build.sh

#!/bin/bash 
set -eo pipefail 

php -v 
ping -c 3 mysql 

php composer.phar install --no-progress --no-scripts 

php artisan package:discover 
cp -v .env.testing .env 
php artisan key:generate 
php artisan optimize 
php artisan config:clear 
php artisan storage:link 
php artisan migrate --seed 
php artisan jwt:secret 
php artisan passport:install --force 

。 gitlab-ci.sh

#!/bin/sh 
set -eo pipefail 

php -v 
ping -c 3 mysql 

./vendor/phpunit/phpunit/phpunit -v --testdox 
+0

嘿对不起,迟交回复。没有你的答案没有解决问题。不管怎么说,还是要谢谢你! –

+0

谢谢,1月你介意分享你如何解决问题?我有兴趣了解是什么导致了这个问题。 –

+0

没有解决办法,我很害怕。我很乐意更新这个线程,如果有的话,我会解决它,但我假设你会得到一个通知,如果我曾经这样做? –

回答

0

什么是Tests\TestCase?我猜线8DocumentTest.php

public class DocumentTest extends TestCase 

...其中TestCasePHPUnit\Framework\TestCase。它似乎有一个自动加载问题或文件不会导入TestCase。尝试改变这一行:

public class DocumentTest extends PHPUnit_Framework_TestCase 

我可以试着给一个更好的答案,如果你包括phpunit.xmlcomposer.json