Codeception DB模块:无效的配置详细信息

时间:2016-11-15 10:43:12

标签: php testing laravel-4 codeception

我对Codeception很陌生,但也没有在网上找到这个问题。 所以,我正在测试我的API,这是我的codeception.yml

actor: Tester
paths:
    tests: tests
    log: tests/_output
    data: tests/_data
    support: tests/_support
    envs: tests/_envs
settings:
    bootstrap: _bootstrap.php
    colors: true
    memory_limit: 1024M
extensions:
    enabled:
        - Codeception\Extension\RunFailed
modules:
    config:
        Db:
            dsn: ''
            user: ''
            password: ''
            dump: 'tests/_data/dump.sql'
            populate: false
            cleanup: false
            reconnect: true

非常基本,对吧?

要继续,这是api.suite.yml内容:

class_name: ApiTester
modules:
    enabled:
        - \Helper\Api
        - REST:
                url: http://localhost:8000/v1
                depends: PhpBrowser
                part: JSON
        - Db:
                dsn: ''
                user: ''
                password: ''
                dump: 'tests/_data/dump.sql'
                populate: false
                cleanup: false
                reconnect: true

我猜也是直截了当的。

因为我想隐藏登录凭据,所以我将它们放在_bootstrap.php

\Codeception\Configuration::$defaultSuiteSettings['modules']['config'] = [
    'Db' => array(
        'dsn' => 'mysql:host=' . getenv('CODECEPTION_DB_HOST') . ';dbname=' . getenv('jupix_branch_dev'),
        'user' => getenv('CODECEPTION_DB_USER'),
        'password' => getenv('CODECEPTION_DB_PASS'),
        'dump' => 'tests/_data/dump.sql',
        'populate' => getenv('CODECEPTION_POPULATE'),
        'cleanup' => getenv('CODECEPTION_CLEANUP'),
        'reconnect' => getenv('CODECEPTION_RECONNECT'),
    )
];

但是,当我尝试运行我收到的测试时:

[Codeception\Exception\ModuleException]
  Db: invalid data source name while creating PDO connection

相当坚持这个。

更新

请注意,当我从- Db:删除api.suite.yml配置后,我的套装正在运行,但在ApiTester调用grabFromDatabase时失败,即ApiTester-具体功能。

0 个答案:

没有答案