【发布时间】:2019-12-01 15:28:03
【问题描述】:
我正在与 buddy.works 合作,以持续集成我的项目。问题是,我的 phpunit 测试在我的本地计算机上通过,但在伙伴工作管道上失败。
我已经尝试谷歌搜索和阅读两天多了,虽然我发现了许多类似的问题,但我还没有遇到一个甚至可以为我指明正确方向的解决方案。
public function test_orders_route_unauthenticated_user () {
$data = [
'orderID' => '001241',
'sku' => '123456',
'quantity' => 9,
'pricePerUnit' => 78,
'priceTotal' => 702,
];
$this->json('POST', 'api/orders', [$data])->assertStatus(401);
}
测试失败,状态码为 500 而不是 401,我不知道是什么原因造成的。
编辑: Laravel 5.8.17,与它集成的 php 单元,可以按预期工作,直到在 buddy works 上运行。
【问题讨论】:
-
您的日志怎么说? 500 应该留下一个条目
-
500 表示服务器错误,因此您甚至没有到达端点。尝试查看您的日志。使用
$this->withoutExceptionHandling()获取完整的堆栈跟踪。 -
不幸的是,我无法访问日志,因为在我的机器上它工作正常,只有当好友运行测试时它才会失败。
-
Tests\Feature\ProductsControllerTest::test_products_route_unauthenticated_user 预期状态码 401 但收到 500。未能断言 false 为真。 /buddy/management-products-api-3/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php:133 /buddy/management-products-api-3/tests/Feature/ProductsControllerTest.php:45失败!
-
你是否使用 Postman 或其他工具来测试你的 API。因为显然您的
api/orders无法访问,因此是 500。您必须检查应用程序是否在服务器上运行。
标签: php laravel phpunit laravel-passport