标签: laravel-dusk

验收测试方法访问undefined

我创建了一个带有身份验证的新laravel 5.4项目.

然后,我为登录过程创建了一个功能测试,如下所示

public function test_login()
  {
    $user = factory(\App\User::class)->make();
    $user->save();
    $this->visit('/login')
    ->type($user->email,'email')
    ->type($user->password,'password')
     ->press('login');;
     $this->seePageIs('/dashboard');
    }
Run Code Online (Sandbox Code Playgroud)

但是当我运行测试时,我得到了

错误:调用未定义的方法测试\ Feature\UserTest :: visit()

不确定我是否需要安装另一个组件.这就是我的composer.json的样子

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "laravel/dusk": "^1.0",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"

    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-root-package-install": …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-5.3 laravel-5.4 laravel-dusk

1
推荐指数
2
解决办法
8388
查看次数

Laravel Dusk打开错误的网站网址

所以我正在运行我的网站http://localhost:8080,下面是我的测试:

public function testExample() {
        $this->browse( function ( Browser $browser ) {
            $browser->visit( '/' )
                    ->assertTitle( 'Welcome to Mysite' );
        } );
    }
Run Code Online (Sandbox Code Playgroud)

在运行时php artisan dusk,它会打开错误的URL http://localhost.如果我提到完整的URL然后它的工作原理.

如何让它打开正确的URL?

php laravel-5.4 laravel-dusk

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

为什么我不能在 Laravel Dusk 中使用 body 类选择器?

我正在使用 Laravel 5.5 和 Dusk 2.0。我有以下 html。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body class="my-body-class" id="my-body-div">
    <div class="my-content-class" id="my-content-div">
        Content goes here.
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的黄昏测试。

public function testBasicExample()
{
    $this->browse(function (Browser $browser) {
        $browser->visit('/test/admin-fixed-layout');
        $this->assertNotNull($browser->element('.my-content-class'));
        $this->assertNotNull($browser->element('#my-content-div'));
        // $this->assertNotNull($browser->element('.my-body-class'));
        $this->assertNotNull($browser->element('#my-body-div'));
    });
}
Run Code Online (Sandbox Code Playgroud)

如果我取消注释使用主体类选择器的断言,则测试失败。为什么?

laravel laravel-5 laravel-dusk laravel-5.5 laravel-dusk2

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

可以记录Laravel Dusk测试结果吗?

Dusk为测试提供了单独的日志,这些测试在控制台中返回了失败/警告,但是我真正想要的是一个大的日志文件或报告,列出了我的Dusk脚本中每个测试的通过/失败状态。

任何人都可以提出解决方案吗?我在任何地方都找不到答案,但是似乎应该比较普遍,所以我确定我已经忽略了一些东西。

logging automated-tests laravel laravel-dusk

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

在 Lumen 上安装 (Laravel) Dusk

我正在构建一个自消费 Lumen API,它有一个 Lumen 视图(它提供附加了 React 应用程序的 HTML)。

我能够安装 Dusk, composer require --dev laravel/dusk 这似乎很成功。

但是,当我跑步时, php artisan dusk:install 我得到 There are no commands defined in the "dusk" namespace.

我知道 Lumen 有一个精简的 php 工匠。但是,想知道我是否可以将命令添加到“dusk”命名空间,或者是否有人成功地将 Dusk 与 Lumen 一起使用。

laravel lumen laravel-dusk

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

Laravel Dusk - 通过属性获取 textarea 元素并输入文本

我正在使用 Laravel Dusk 并且我在一个页面上有这个 HTML:

<div>
    <textarea class="" data-auto="notes" style="height: 72px;"></textarea> 
    <button class="">
        <svg viewBox="0 0 9.877141 7.3747067" height="7.375" width="9.877"> 
            <path d="M8.517 0a.56.56 0 0 0-.397.166L3.896 4.418l-2.14-2.14a.56.56 0 0 0-.796 0l-.795.794a.56.56 0 0 0 0 .795l2.53 2.53c.005.005.006.012.011.017l.795.795.002.002c.22.219.576.218.795-.002l5.416-5.455A.561.561 0 0 0 9.712.96L8.917.164h-.002A.561.561 0 0 0 8.517 0z" ></path> 
        </svg>
    </button>
    <div class=""></div>
</div>
Run Code Online (Sandbox Code Playgroud)

如何在文本区域中输入文本并单击按钮?没有名字,没有类,没有ID……只有属性……

我尝试:

$browser->element("textarea[data-auto='notes']")->type('some notes');
$browser->element("/button/svg")->click();
$browser->pause(1000);
Run Code Online (Sandbox Code Playgroud)

但什么也没发生。

selenium laravel selenium-chromedriver selenium-webdriver laravel-dusk

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