2016-10-19 5 views
2

도커 컨테이너에서 PHPUnit을 통해 CakePHP2 어플리케이션을 테스트 할 때 몇 가지 문제점이 있습니다.GitLab CI Docker CakePHP 2 테스트가 작동하지 않습니다.

CakePHP2 testing guide은 CakePHP2와 호환되는 마지막 PHPUnit 버전이 3.7.38입니다.

나는이 버전을 사용하고 있지만 여전히 나는 다음과 같은 오류를 얻을 :

가이 오류와 관련된 issue했지만, 그것은 phpunit을 4에서

phpunit을 3으로 다운 그레이드에 의해 해결되었다

Warning Error: include(PHPUnit/Autoload.php): failed to open stream: No such file or directory in [/builds/application_folder/lib/Cake/TestSuite/CakeTestSuiteDispatcher.php, line 162]

Warning Error: include(): Failed opening 'PHPUnit/Autoload.php' for inclusion (include_path='/builds/zb2/kswf/lib:.:/usr/local/lib/php') in [/builds/application_folder/lib/Cake/TestSuite/CakeTestSuiteDispatcher.php, line 162]

여기 내 .gitlab-ci.yml의 I 인쇄의 before_script 섹션에서 GitLab 러너

FROM php:5 
RUN apt-get update -y 
RUN apt-get install -y wget 
RUN sh -c 'wget -c https://phar.phpunit.de/phpunit-3.7.38.phar -O phpunit.phar && chmod +x phpunit.phar && mv phpunit.phar /usr/local/bin/phpunit' 

을 위해 사용하고 이미지의 Dockerfile입니다 PHPUnit 버전은 올바른 버전이 설치되어 있는지 확인하고 3.7.38을 인쇄합니다.

감사합니다.

+0

나는 동일한 문제가 있지만 현재로서는 해결책이 없습니다 .--( –

답변

1

음, phpunit은 v4에서 시작하여 자동으로 파일을로드하지 않습니다 (올바르게 기억하는 경우). phpunit.phar로 압축 된 모든 파일은 직접 코드 요구 문을 통해 포함됩니다 (예 : 5.3.4 phar의 경우 파일 내부를 볼 때 파일의 23 - 517 행을 차지함). 이것의 아이디어는 CLI에서 phpunit 명령을 통해 테스트가 시작되므로 PHP 파일이 모든 준비를 완료하고 PHPUnit_TextUI_Command :: main()을 시작합니다.

PHP 코드에서 테스트를 시작해야하는 경우 (모든 경우 준비가 필요함) 직접 준비해야합니다. 클래스 로딩 만 언급하면 ​​매퍼와 spl_autoload_register을 구현하거나 클래스 용 덤프를 만들고 phpunit (phar 파일에서와 같이)의 모든 파일을 포함하는 파일을 만듭니다. 또 다른 옵션 (시도는 해본 적이 없지만 가능하다고 생각한다)은 phpunit을위한 덤프와 오토로더 생성을 위해 Composer를 사용하고 있을지도 모르지만, 그러한 기능을 가지고있다.

코모도 IDE 용 런처를 구현했으며 모든 파일을 즉시 포함하지 않고 첫 번째 옵션 (내 자신의 덤퍼, 매퍼 및 오토로더)을 선택하고 실제로 필요한 파일 만로드하고 또한로드 할 수있게했습니다. 다른 버전의 phpunit을 가지고 실행하십시오.

글쎄, 당신이 복사해서 붙여 넣기를 할 수없고 일하는 것을 얻을 수 없기 때문에 이것은 정말로 답이 아닙니다. 저는 모든 것을 주석으로 넣으려고했지만 충분히 짧지는 않았습니다.

관련 문제