问题标签 [laravel-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何在 Laravel 项目中为我自己的包运行 php 测试?
我有自己的 Laravel 包,我希望能够为它编写和创建测试。
我的项目安装在我的项目中的以下目录中ROOT/CompayName/package-name
。我的测试位于,ROOT/CompanyName/package-name/tests
而代码位于 ROOT/CompanyName/package-name/src
.
在composer.json
文件中,我像这样自动加载我的测试
phpunit.xml
此外,我在文件中添加了以下内容
然后我创建以下测试
但是,当我从命令行运行时phpunit
,我的测试没有被触发!
如何正确触发我的包中的测试。
laravel - 奇怪的 assertJSON 行为
我想测试一个 AJAX 响应是否包含我期望的数组。
到目前为止一切都很好,不是很多。
这就是我的数组的样子:
当我运行测试时:
该数组看起来确实像那样,但无论如何它都失败了。为什么?因为实际上它期望数组两次。
在比较窗口中,我看到它期望这样:
但是得到了上面提到的数组(这也是我所期望的)。
当我运行$request->assertJSON([]);
测试成功时,但这不可能是它应该工作的方式,是吗?
laravel - Test.Error 预期状态码 200 但收到 200。如何解决?
我为 CompanyController 创建了测试,
但我有一个错误:
1) Tests\Feature\CompanyTest::testCompanyIndex 预期状态码 200 但收到 200。未能断言 false 为真。
在 CompanyController 我有中间件auth:web
。CompanyController@index
返回所有公司。
laravel - 在 laravel 中每次测试后重置 Redis 数据库
在我的 laravel 应用程序中,我使用 Redis 来存储一些缓存(例如,要在首页上显示的项目列表)。我总是通过 Facade 访问 Redis Illuminate\Support\Facades\Redis
:.
我创建了一个不同的 Redis 数据库进行测试(1
而不是0
),但我还需要在每次测试后重置它,以便测试永远不会从之前的测试中获取数据。
有没有一种有效的方法来创建这种行为?
我尝试使用@before
注释来实现它:
但我得到了错误:Cannot use 'FLUSHDB' over clusters of connections.
有任何想法吗?
php - 在 Laravel 5.8 中,如何在包中定义模型工厂?
我似乎找不到任何关于如何实现这一目标的好的和最新的资源。
我基本上想从我的包中做到这一点:
这可以做到吗?
谢谢,
laravel - Laravel Telescope 不记录来自 TestCase 的请求
出于调试目的,我想让 Telescope 记录来自测试套件的任何请求。望远镜目前没有,我不知道为什么。
我启用了望远镜phpunit.xml
这是我的功能测试
当我打开望远镜时,没有/api/vehicle
保存的条目。
laravel - 当我在终端中运行命令 phpunit 时,我收到了 php 警告
当我在终端控制台中运行phpunit
命令时,我收到了 Php 警告。
我试过跑步vendor/bin/phpunit
,但结果是一样的。
这是一个错误:
PHP 警告:“继续”定位开关相当于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 中的第 277 行警告:“继续”定位开关等同于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 中的第 277 行 PHP 警告:“继续”定位开关等同于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 第 285 行
警告:“继续”定位开关相当于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 中的第 285 PHPUnit 3.7.21 行,作者 Sebastian Bergmann。
laravel - 如何在两个模型之间的关系中通过 phpunit 成功执行测试?
我是 Laravel 的新手。我有 2 表产品和产品。另外,我有 2 家工厂 ProductionFactory 和 ProductFactory。我想通过 phpunit 测试它们。他们的连接是通过 production_id。
错误是 ErrorException:未定义的变量:生产。
我不明白。
提前致谢。
这是一个代码。
生产工厂.php
产品工厂.php
生产测试.php
产品测试.php
laravel - Laravel 测试 API 端点 - 缺少 POST 参数
我有一个要测试的 API 端点,它接收一个 POST 有效负载。端点基本上调用Omnipay Sage Pay库来处理服务器通知。
我可以使用 Postman 客户端很好地发布到这个端点,但是当使用 Laravel phpunit 测试时,例如
Omnipay 库看不到帖子数据?
我认为这是因为 Laravel 助手$this->post
不使用 application/x-www-form-urlencoded POST 请求?我看了一下幕后$this->post
,它似乎直接调用了控制器/方法,这是有道理的..
我最接近这项工作的是直接使用 Guzzle(见下文),但是这会将请求路由到“测试”会话之外并返回到我假设的本地应用程序中?这会破坏我的测试,因为我在 POST 调用之前通过工厂设置了一些测试数据。
我不太确定问题出在哪里,无论是在我的测试中还是在 Omnipay 库本身中?
laravel - Laravel 中间件共享变量视图在编写 HTTP 测试时不起作用
我们有以下中间件。我们知道中间件可以正常工作,因为在浏览器中测试应用程序正常工作。可悲的是,在编写 HTTP 测试用例时,刀片说中间件定义的变量不存在。
我们进行如下 PHPUnit 测试:
错误
任何意见,将不胜感激?
编辑
我必须使用View
外观添加它并调用它的share
方法使其工作,但我遇到了errors
应该由\Illuminate\View\Middleware\ShareErrorsFromSession
股票 laravel 中间件设置的变量的相同问题。
其他备注,我的中间件被调用Authenticate
,但它与 Laravel 的基于密码的普通身份验证无关。
这里UserContract
: