Sqlite文件数据库在Codeception测试中出现故障

3

尝试在app/cache/tests目录中使用sqlite文件数据库失败。这是通过清除开发MySQL数据库并通过控制台填充测试环境数据库来确定的。外部Sqlite Manager已确认正在填充测试数据库。[没有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
1个回答

1

您还没有在acceptance.yml中启用Db模块。

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

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


我理解,仅仅在 acceptance.yml 中用一个(可行的)WebDriver配置替换Symfony2配置是不够的。测试是针对MySQL而不是Sqlite数据库执行的。 - geoB
这是因为您的网站使用了mysql,Codeception无法控制通过HTTP访问的应用程序。 - Naktibalda
谢谢。我现在觉得我理解得更好了。 - geoB
抱歉,但我仍然有些困惑。如果WebDriver用于验收测试,并且该测试针对实时数据库执行,那么如何进行清理/回滚操作? - geoB
现在一切(几乎)都有意义了。感谢你的耐心和评论。 - geoB
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接