我创建了一个带有身份验证的新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) 所以我正在运行我的网站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?
我正在使用 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)
如果我取消注释使用主体类选择器的断言,则测试失败。为什么?
Dusk为测试提供了单独的日志,这些测试在控制台中返回了失败/警告,但是我真正想要的是一个大的日志文件或报告,列出了我的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 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
laravel-dusk ×6
laravel ×5
laravel-5 ×2
laravel-5.4 ×2
laravel-5.3 ×1
laravel-5.5 ×1
logging ×1
lumen ×1
php ×1
selenium ×1