gpt4 book ai didi

Laravel Dusk 测试运行速度非常慢

转载 作者:行者123 更新时间:2023-11-28 20:18:39 26 4
gpt4 key购买 nike

即使像下面这样运行一个简单的测试也是如此:

public function test_simple()
{
$user = factory(User::class)->create();

$this->browse(function ($browser) use($user){
$browser->visit('/login')
->type('email', $user->email)
->type('password', 'secret')
->press('Login')
->assertPathIs('/home');
});

}

Laravel Dusk 运行速度非常慢,仅此测试就需要 14-16 秒。

我怎样才能加快速度?因为如果我要运行 100 个测试,那将花费非常长的时间。

任何解决方案?

最佳答案

对我来说,花费大量时间的事情是在每次测试之前运行迁移,并在 DatabaseMigrations 特性完成的每次测试之后运行 migrate:rollback。这是我在我的项目中解决它的方法:

  1. 从您的测试用例中删除 DatabaseMigrations 特性的使用。
  2. 在开始测试之前调用 ./artisan migrate:fresh --seed --env=dusk。我在调用运行测试的 bash 文件中执行此操作。
  3. DuskTestCase 基类的 setUp 方法中调用一个命令来删除表中的所有数据。这是我为 MySQL 所做的(在 Artisan 命令中):


$command = 'mysql -u test_database -Nse "显示表"test_database |读表时;做 mysql -u test_database -e "SET FOREIGN_KEY_CHECKS = 0; 从 $table 中删除"test_database;完毕;';
$结果=执行($命令);

  1. 在上述命令之后运行 $this->artisan('db:seed');

现在测试运行得更快。

关于Laravel Dusk 测试运行速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51435725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com