2016-09-06 7 views
0

swf 메일러와 함께 Symfony2 (.7)를 사용하여 eamils를 보냅니다. 한 번에 여러 사용자에게 전자 메일을 보내고 symfony 페이지에서 Profiler를 사용하여 제안 했으므로 기능 테스트를 수행했습니다. 테스트는 PHPUnit에 의해 실행됩니다.Symfony2 swiftmailer 기능 테스트가 Gitlab CI에서 작동하지 않습니다

$client->enableProfiler(); 
$crawler = $client->request(...); 

if ($profile = $client->getProfile()) { 
    $this->assertEquals(1, $mailCollector->getMessageCount()); 
} 

문제는 시험 (창)하지만 GitLab 커뮤니티 에디션 8.8.1의 CI에서 실행 테스트가 실패했을 때 내 로케일 PC에서 확인 것입니다. $ mailCollector-> getMessageCount()는 0을 반환하고 $ mailCollector-> getMessages()는 빈 배열을 반환합니다.

CI의 설정 :

before_script: 
    - composer config --global .. 
    - composer self-update 
    - composer install 
    - cat app/config/parameters.yml 
    - mysqlthings 

stages: 
    - test 

test: 
    script: 
    - php app/console doctrine:schema:update --force 
    - php app/console doctrine:fixtures:load 
    - php app/console security:check 
    - php app/console cache:clear --env=test 
    - php -d zend_extension=xdebug.so phpunit.phar -c app/ 

dev에 CFG :

framework: 
    router: 
     resource: "%kernel.root_dir%/config/routing_dev.yml" 
     strict_requirements: true 
    profiler: { only_exceptions: false } 

web_profiler: 
    toolbar: true 
    intercept_redirects: false 

테스트 CFG :

imports: 
    - { resource: config_dev.yml } 

framework: 
    test: ~ 
    session: 
     storage_id: session.storage.mock_file 
    profiler: 
     enabled: true 

web_profiler: 
    toolbar: false 
    intercept_redirects: false 

swiftmailer: 
    disable_delivery: true 

security: 
    firewalls: 
     main: 
      http_basic: ~ 

이 Btw는 이러한 파일을 gitlab 내 로케일에 동일합니다. 또한 이들과 함께 메일 발송을 시도 :
mailer_transport: smtp 
    mailer_host: 127.0.0.1 
    mailer_user: null 
    mailer_password: null 
    mailer_port: 465 

내 마지막 희망으로 실제 메일 발송 서버와

.. 내가 CI에 대한 몇 가지 추가 설정이 필요하거나 어떤 문제가 될 수 있습니까? Thx.

답변

0

저는 gitlab ci도 사용하고 있으며,이 문제가 없었습니다. CI Runner에 대한 문제도 생각하지 않습니다.

이 당신이 물론 가능?

framework: 
    profiler: 
     enabled: true 
+0

로컬 테스트 할 때 당신이 config_test.yml과 테스트 ENV를 사용하여이되어 있는지입니다 :/또한 테스트는 경우 지점을 입력하고 난 메일 수집기를 가지고 너무 작동하지만 messagecount는 CI에서는 0이지만 응답을 위해서는 thx입니다 – fagyi

+0

--env = dev (기본값)에 db가 설치된 이유는 무엇입니까? – Rufinus

+0

'매개 변수 : database_host : 127.0.0.1 database_port : 3306 데이터베이스 _ : somename DATABASE_USER : 루트 DATABASE_PASSWORD : 널 (null) CFG : 교리 : dbal : 드라이버 : pdo_mysql 호스트 : "%의 database_host %의" 포트 : "%의 database_port %의" DBNAME : "%의 데이터베이스 _ %의" 사용자 : "%의 DATABASE_USER %의" 암호 : "%의 DATABASE_PASSWORD %의" 캐릭터 세트 : UTF8 ORM : auto_generate_proxy_c lasses : false naming_strategy : doctrine.orm.naming_strategy.underscore auto_mapping : true' – fagyi