rollback - Laravel Dusk,DatabaseTransactions 不执行回滚

标签 rollback laravel-dusk

我正在使用 Laravel Dusk,以下注册测试工作正常,只是它不会回滚事务(即在“注册”上创建的用户记录始终保留在数据库中)。 我的表已全部设置为使用 InnoDB 引擎。

对发生的事情有什么想法吗?我在很多地方都放了日志,看起来没有什么特别错误的地方。我在 laravel.log 文件中也没有收到任何错误。

use DatabaseTransactions;

protected $connectionsToTransact = [ 'mysql' ];

/**
 * A basic browser test example.
 *
 * @return void
 */
public function testBasicExample()
{
    $this->browse(function (Browser $browser) {
        $browser->visit('/')
                ->type('name', 'Automated User')
                ->type('email', '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="026377766d676f636b6e426a6d766f636b6e2c616d6f" rel="noreferrer noopener nofollow">[email protected]</a>')
                ->type('password', 'aaaaaa')
                ->type('password_confirmation', 'aaaaaa')
                ->press('Register')
                ->assertPathIs('/login');
    });

}

这是我在 config/database.php 中的连接

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => 'innoDB',
    ],

更新

我尝试在断言后更新模型,但它也不起作用。似乎所有数据库事务一般都没有被执行。

最佳答案

您无法在 Dusk 测试中使用DatabaseTransactions。由于真正的浏览器正在打开您的网站,因此您的测试在不同的进程中运行。

您必须自己撤销更改,例如通过删除注册用户。

关于rollback - Laravel Dusk,DatabaseTransactions 不执行回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542889/

相关文章:

tfs - 如何撤消TFS 2010中的变更集回滚?

java - markRollbackOnly() 在 Camel 2.0 中不起作用

php - Laravel Dusk 测试 click() 不工作

Laravel 黄昏截图

laravel - 在 Laravel Dusk 中记录 Javascript 控制台输出

laravel-dusk - 如何点击使用 laravel dusk 隐藏的元素?

sql - 仅在备份成功时删除数据库

python - Django 中数据库连接失败回滚的正确方法

php - 如何处理超过 100 个具有回滚功能的 mysql 查询?

php - Laravel Dusk - 类配置不存在