标签: laravel-dusk

使用Laravel黄昏只迁移一次

根据"数据库测试"文档,我可以在每次测试后重置数据库(第一个选项).第二个选项是使用Transactions运行测试.对我来说这似乎是一种更好的方法,但如果我想使用事务运行,则迁移不会运行.

有没有办法在所有测试过程中运行一次迁移

换句话说,我想运行迁移,使用事务运行每个测试,然后回滚.我尝试了文档说的内容,但我认为缺少了一些东西.

php unit-testing laravel laravel-5.4 laravel-dusk

6
推荐指数
1
解决办法
2257
查看次数

如何点击laravel黄昏的链接图标?

如果我有链接:

<a href="/somewhere">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

我知道我可以clickLink根据它的文字.

public function testCanClickLink()
{
    $this->browse(function ($browser) {
        $browser->visit('/welcome')
                ->clickLink('Click Me');
    });
}
Run Code Online (Sandbox Code Playgroud)

但是如何点击图标链接?

<a href="/somewhere">
    <i class="fa fa-plus" aria-hidden="true"></i>
</a>
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-dusk

6
推荐指数
1
解决办法
3502
查看次数

Laravel dusk 看不到 vuejs 选择器

我正在尝试使用 vuejs 运行 laravel dusk,但出现错误

1) Tests\Browser\UserCreateTest::testAdminCanCreateAnotherUser Facebook\WebDriver\Exception\TimeOutException:为选择器 [.users] 等待了 5 秒。

这是我的测试

$this->browse(function (Browser $browser) {
            $user = User::find(1);
            $browser
                ->loginAs($user)
                ->visit('/users');

            $browser->waitFor('.users');
Run Code Online (Sandbox Code Playgroud)

在Vue模板中,我有类用户的div。

有人知道它有什么问题吗?

testing laravel vue.js vue-router laravel-dusk

6
推荐指数
1
解决办法
1271
查看次数

如何解决例外在laravel 5.5中运行Dusk是不安全的?

我将我的项目从laravel 5.4升级到laravel 5.5,

我在本地环境中没有任何问题,但在服务器中我得到这个例外,

我搜索了很多,我知道这个问题可能重复,但没有解决方案解决了我的问题!

当环境生产时,我怎么能不注册黄昏?

我在AppServiceProvider.php中编写了这段代码:

public function register()
{
    // Dusk, if env is appropriate
    if ($this->app->environment('local', 'testing')) {
        $this->app->register(DuskServiceProvider::class);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它似乎无法正常工作.有人可以帮忙吗?

编辑:我的composer.json文件:

 "require-dev": {
    "filp/whoops": "~2.0",
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "1.*",
    "phpunit/phpunit": "^7.0.3",
    "symfony/css-selector": "4.0.*",
    "symfony/dom-crawler": "4.0.0",
    "barryvdh/laravel-ide-helper": "^2.4",
    "laravel/dusk": "^2.0"
  },
Run Code Online (Sandbox Code Playgroud)

例外情况是:

Exception
It is unsafe to run Dusk in production.
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-dusk laravel-5.5

6
推荐指数
2
解决办法
9515
查看次数

Laravel Dusk在执行测试时如何显示浏览器

我正在编写一些测试,我想看看Dusk是否正确填写了输入字段,但是Dusk在运行测试时未显示浏览器,是否有任何方法可以强制它执行此操作?

testing laravel laravel-5 laravel-dusk

6
推荐指数
2
解决办法
2198
查看次数

Laravel 黄昏截图

我正在使用 laravel5.6Dusk运行一些测试。

我总是像这样截取我的截图

...
use Facebook\WebDriver\WebDriverDimension;
...
class LoginTest extends DuskTestCase
{
    public function testLogin()
    {
        $user = User::first();

        $this->browse(function ($browser) use ( $user ) {
            $test = $browser->visit( new Login)
                    ->resize(1920,1080)                    
                    ...                
                    ->driver->takeScreenshot(base_path('tests/Browser/screenshots/testLogin.png'));
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但是随着我的测试使用的越来越多,我不想每次都继续写->resize(X,Y)base_path('bla/blab/bla').

我想为将要编写的每个测试定义大小路径

我想我应该定义一些函数,tests/DesukTestCase.php但我什至不知道如何检索驱动程序等等。

你有关于这方面的一些指导或文档吗?因为我找不到任何东西......

laravel laravel-dusk

6
推荐指数
1
解决办法
4217
查看次数

覆盖 Laravel 中的 trait 以改变 Dusk 的行为

我有一个 Laravel 5.4 项目,正在尝试使用 Dusk 运行一些测试。我想在运行测试之前重置、迁移和播种。我已将其设置为使用 SQLite,并且理想情况下希望在内存中运行它,但物理文件也可以。

我能够通过更改 Illuminate\Foundation\Testing\DatabaseMigrations 来获得我想要的东西;原文:

public function runDatabaseMigrations()
{
    $this->artisan('migrate');

    $this->app[Kernel::class]->setArtisan(null);

    $this->beforeApplicationDestroyed(function () {
        $this->artisan('migrate:rollback');
    });
}
Run Code Online (Sandbox Code Playgroud)

我的版本:

public function runDatabaseMigrations()
{
    $this->artisan('migrate:refresh');
    $this->artisan('db:seed');

    $this->app[Kernel::class]->setArtisan(null);

    $this->beforeApplicationDestroyed(function () {
        $this->artisan('migrate:rollback');
    });
}
Run Code Online (Sandbox Code Playgroud)

但是当然我会在未来的一些更新中失去它,所以我需要覆盖我的特征。

我将特征复制到 App\Traits\DatabaseMigrations.php 并更改了命名空间。

<?php

namespace App\Traits;

use Illuminate\Contracts\Console\Kernel;

trait DatabaseMigrations
{
    /**
     * Define hooks to migrate the database before and after each test.
     *
     * @return void
     */
    public function runDatabaseMigrations()
    {
        $this->artisan('migrate:refresh');
        $this->artisan('db:seed');

        $this->app[Kernel::class]->setArtisan(null);

        $this->beforeApplicationDestroyed(function () {
            $this->artisan('migrate:rollback');
        });
    }
} …
Run Code Online (Sandbox Code Playgroud)

php traits laravel-5.4 laravel-dusk

5
推荐指数
0
解决办法
688
查看次数

ExampleTest.php 中未找到类“Tests\DuskTestCase”

我正在尝试运行 Laravel Dusk 测试,但是当我运行测试时,会弹出一个带有此消息的新 Chrome 选项卡。

Fatal error: Class 'Tests\DuskTestCase' not found in path-to-project\tests\Browser\ExampleTest.php on line 9
Run Code Online (Sandbox Code Playgroud)

到目前为止,我所做的只是 runcomposer require --dev laravel/dusk:^1.0php artisan dusk:install.

这是我的 ExampleTest.php(Laravel 是如何设置的)

<?php

namespace Tests\Browser;

use Laravel\Dusk\Chrome;
use Tests\DuskTestCase;
use Laravel\Dusk\DuskServiceProvider;

class ExampleTest extends DuskTestCase
{
    /**
     * A basic browser test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->browse(function ($browser) {
            $browser->visit('/')
                ->assertSee('Laravel');
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

DuskTestCase.php 也和 Laravel 一样,有命名空间namespace Tests;

我正在使用 Laravel 5.4 和 …

laravel laravel-dusk

5
推荐指数
2
解决办法
2403
查看次数

Laravel Dusk在转储浏览器时返回空的html文档,因此断言失败

我有一个来自laravel 5.1的项目,我们已经对其进行了相应的升级,直到5.6,该应用程序上的所有内容均正常运行。当我安装黄昏并在ExampleTest.php上运行它时:

$this->browse(function (Browser $browser) {
    $browser->visit('/');
    $browser->dump();
});
Run Code Online (Sandbox Code Playgroud)

我收到这个空的html文档,但我不知道它来自哪里:

"<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>"
Run Code Online (Sandbox Code Playgroud)

我使用的是laravel宅基地,我知道黄昏可以正常工作,因为如果我安装了一个新的laravel应用程序(laravel.local),则可以正常工作,并且ExampleTest断言返回绿色。

我到处搜索了可能的原因,但是我已经用光了资源甚至线索,请帮忙。

php vagrant laravel homestead laravel-dusk

5
推荐指数
1
解决办法
654
查看次数

使用 Laravel Dusk 模拟按键(无输入元素)

我有一个页面,其中包含一些禁用的输入、跨度和 div。
在后台我等待按键。这是一些记忆游戏的背景。
我的问题是,结果证明它很难测试。
我知道两个函数来模拟输入:type()keys(). 当我使用时keys("@someElement", "34"),我得到“元素不可交互”。类似的情况发生在type()(这并不奇怪,因为 type 建议填写一些输入)。

如何在不使用活动输入元素的情况下正确模拟按键?

laravel-dusk laravel-dusk2

5
推荐指数
1
解决办法
901
查看次数