2017-09-29 4 views
0

Ich habe eine Gitlab CI-Pipeline für ein Laravel 5.5-Projekt (Dateien am Ende des Beitrags) eingerichtet und der Build ist erfolgreich, aber die Tests schlagen fehl, weil PHPUnit tritt mit der FehlermeldungGitlab CI -Laravel 5.5 - PHPUnit "Tests TestCase nicht gefunden"

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

(Offensichtlich [Benutzer] und [Repo] sind nicht die wirklichen Werte, nicht einfach wollen es hier öffentlich machen)

ich verschiedene Dinge bereits versucht haben, , wie PHPUnit global zu installieren und PHPUnit auf verschiedene Arten aufzurufen, endet alles mit derselben Fehlermeldung.

PHPUnit läuft erfolgreich auf meinem lokalen (egal wie ich es nenne, es funktioniert immer). Also weiß jemand, was das Problem hier sein könnte?

Als Referenz hier sind die Pipeline-Dateien:

.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

Hey Sorry für die späte Antwort. Nein, Ihre Antwort hat das Problem nicht gelöst. Danke trotzdem! –

+0

Danke, Jan. Haben Sie etwas dagegen mitzuteilen, wie Sie das Problem gelöst haben? Ich bin interessiert zu erfahren, was das Problem verursacht hat. In diesem Fall. –

+0

Noch keine Lösung, fürchte ich. Ich bin glücklich, diesen Thread zu aktualisieren, wenn ich es jemals lösen werde, ich nehme an, Sie werden eine Benachrichtigung erhalten, wenn ich es jemals tue? –

Antwort

0

Was ist Tests\TestCase? Ich vermute, Linie 8 in DocumentTest.php ist

public class DocumentTest extends TestCase 

... wo TestCasePHPUnit\Framework\TestCase ist. Es scheint, als ob ein Autoloading-Problem vorliegt oder die Datei TestCase nicht importiert. Versuchen Sie, diese Zeile:

public class DocumentTest extends PHPUnit_Framework_TestCase 

ich versuchen kann, eine bessere Antwort zu geben, wenn Sie schließen die phpunit.xml und composer.json.

Verwandte Themen