Symfony2 swiftmailer功能测试不适用于Gitlab CI

时间:2016-09-06 09:51:58

标签: symfony phpunit gitlab swiftmailer gitlab-ci

我使用Symfony2(.7)和swiftmailer发送出来的eamils。制作了一个函数,可以同时向多个用户发送电子邮件,并使用profiler建议的symfony页面进行功能测试。该测试由PHPUnit运行。

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

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

问题是我的语言环境pc(windows)上的测试没问题,但是当在GitLab Community Edition 8.8.1的CI上运行时测试失败。 $ 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: ~

顺便说一句,这些文件在gitlab和我的语言环境中都是一样的。 我也试过邮件:

    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    mailer_port: 465

并以真正的邮件服务器作为我最后的希望.. 我是否需要一些关于CI的其他设置或可能是什么问题? THX。

1 个答案:

答案 0 :(得分:0)

我也使用gitlab ci,从来没有遇到过这个问题 - 我也不认为这是CI-Runner的问题。

你确定你在config_test.yml中有这个并在测试本地时使用测试env吗?:

framework:
   profiler:
       enabled: true