当前位置: 首页 > 知识库问答 >
问题:

Codeception,Dbh,事务

赵越
2023-03-14

我有一些问题与Dbh模块在Codec农田。首先,我想在每次测试中回滚每个数据库操作(当然是在看到InDatabase之后)。所以我的codeception.yml是

paths:
    tests: tests
    log: tests/_log
    data: tests/_data
    helpers: tests/_helpers
settings:
    bootstrap: _bootstrap.php
    suite_class: \PHPUnit_Framework_TestSuite
    memory_limit: 1024M
    log: true
    colors: true
coverage:
    enabled: true
    remote: true
    include:
        - controllers/*
        - models/*
        - widgets/*
modules:
    enabled: [Db,Dbh]
    config:
        Db:
            dsn: 'mysql:host=localhost;dbname=baxi'
            user: 'root'
            password: ''
            #dump: tests/_data/dump.sql
            cleanup: true
        Dbh:
            cleanup: false

在指南说把这个放进引导程序之后

<?php
 \Codeception\Module\Dbh::$dbh = $dbh;
 ?>

但如何从Db模块中获得$dbh?最后我得到了一个错误

[Codeception\Exception\ModuleConfig]                      
  Dbh module is not configured!                             

  Transaction module requires PDO instance explicitly set.  
  You can use your bootstrap file to assign the dbh:        

  \Codeception\Module\Dbh::$dbh = $dbh  

如何正确设置?

共有2个答案

茅曾琪
2023-03-14

您还可以使用codeception.yml中的配置参数:

\Codeception\Module\Dbh::$dbh = new PDO($settings['modules']['config']['Db']['dsn'], $settings['modules']['config']['Db']['user'], $settings['modules']['config']['Db']['password']);
张通
2023-03-14

也许您需要在引导文件中执行以下操作:

$dbh = new PDO('mysql:host=localhost;dbname=baxi;charset=utf8', 'root', '');
\Codeception\Module\Dbh::$dbh = $dbh;
 类似资料:
  • DBH

    DBH (Disk based hashes) 是一种用来创建基于磁盘的多维二叉树的方法。该库允许扩展数据库概念到大量的电子数据,诸如图形信息。

  • Codeception 是一个全堆栈的 PHP 测试框架。 Inspired by BDD, it provides an original way for writing acceptance, functional, and unit tests. It's easy to write, easy to understand, and easy to run in a browser or i

  • 我已经看了好几次留档了,看了来源,都没用。 我在寻找与PHPUnit的“this”相同的Codeception- 根据文档,就像这应该是可行的,但它不是“未定义的方法”。我必须激活哪个助手、模块或其他什么?

  • 目前,我们有一个使用代码欺骗2.0.16构建的大型接受套件。我们想升级到代码欺骗2.2.5。然而,在安装了Codec0019 2.2.5(via phar)之后,我们根本无法运行我们的测试套件。 我们收到的错误是(底部的其他详细信息): 无法找到并加载[Codeception\Exception\ConfigurationException]模块WebHelper 显然,新版本的加载更改会影响我们

  • 我试图设置验收测试使用代码欺骗在Yii2.到目前为止,安装还不错,但我有一个路线问题。 当我这样做时:codeception运行acceptance 我得到的反馈是: 页面上存在名为LoginForm[username]的输入,但Codeception显然没有获得正确的页面。 应该进行/backend/web/index测试。php中也有approt路径吗?当我请求approt/backend/w

  • 使用Yii2 2.0.12,php 5.6.24和codec0019 2.3.3 在最近的一次升级中,一组到目前为止一直有效的验收测试失败了。升级是对最新版本的标准composer更新。测试场景如下所示: 测试通过表单添加记录 抓取新记录验证 测试通过表单添加第二条记录 抓取新记录验证 第二个抓取失败,因为它返回一个空记录。我将其追溯到“Command”对象的“queryInternal”方法,其