我对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-具体功能。