【问题标题】:Sqlite file db for codeception testing fails用于代码接收测试的 Sqlite 文件 db 失败
【发布时间】:2015-12-12 05:02:52
【问题描述】:

尝试使用 app/cache/tests 目录中的 sqlite 文件数据库失败。这是通过清除 dev MySQl 数据库并通过控制台填充测试环境数据库来确定的。正在填充的测试数据库已由外部 Sqlite 管理器确认。 [在没有通过 sqlite 配置的情况下执行的测试。]

codeception.yml:

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

编辑:

在 Ubuntu 虚拟机中,将 Symfony2 配置添加到 Acceptance.yml 可以部分成功 - 测试使用 Sqlite 数据库,但不会从指定的转储 (test.sql) 重写。在 Windows 中添加 Symfony 配置没有任何区别。

acceptance.yml:

class_name: AcceptanceTester
modules:
    enabled:
        - PhpBrowser:
            url: http://vol
        - \Helper\Acceptance
# adding these lines enables Ubuntu to use sqlite db
        - Symfony2:
            app_path: ./app
            environment: test

【问题讨论】:

    标签: sqlite symfony codeception


    【解决方案1】:

    你没有在acceptance.yml中启用Db模块

    modules: enabled: - Db - PhpBrowser: url: http://vol - \Helper\Acceptance

    也不要同时添加 PhpBrowser 和 Symfony2, 只能使用一个。

    【讨论】:

    • 令人着迷。我很欣赏这种洞察力。
    • 不过,我认为在 Acceptance.yml 中用(工作的)WebDriver 配置替换 Symfony2 配置是不够的。测试是针对 MySQL 而不是 Sqlite 数据库进行的
    • 那是因为你的网站使用了mysql,Codeception无法控制它通过HTTP访问的应用程序。
    • 谢谢。我想我现在理解得更好了。
    • 对不起,我还是有点难过。如果 WebDriver 用于验收测试,并且该测试是针对实时数据库执行的,那么清理/回滚是如何完成的?
    猜你喜欢
    • 2021-05-02
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多