我有一个全新的laravel 5.4安装

我试图修改默认测试只是为了看到一个失败的测试.

测试/ ExampleTest.PHP

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasictest()
    {
        $response = $this->get('/ooops');

        $response->assertStatus(200);
    }
}

我期待看到更详细的错误,如没有找到或定义的路线等,但只是这个错误说

Time: 1.13 seconds,Memory: 8.00MB

There was 1 failure:

1) Tests\Feature\ExampleTest::testBasicTest
Expected status code 200 but received 404.
Failed asserting that false is true.

/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.PHP:51
/var/www/tests/Feature/ExampleTest.PHP:21

没有有意义的错误很难做TDD(是的,我知道在这种情况下404就足够了,但大部分时间都不是这样).

有没有办法使堆栈跟踪与浏览器上显示的相同?或者至少接近那个,以便我知道我应该做的下一步是什么.

提前致谢.

对于Laravel 5.4,您可以使用Adam Wathan在 this gist中提供的disableExceptionHandling方法(源代码如下)

现在,如果你在测试中运行:

$this->disableExceptionHandling();

您应该获得有助于您找到问题的完整信息.

对于Laravel 5.5及更高版本,您可以使用内置于Laravel中的withoutExceptionHandling方法

Adam Wathan的要点源代码

<?PHP

namespace Tests;

use App\Exceptions\Handler;
use Illuminate\Contracts\Debug\ExceptionHandler;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
{
    use CreatesApplication;

    protected function setUp()
    {
        /**
         * This disables the exception handling to display the stacktrace on the console
         * the same way as it shown on the browser
         */
        parent::setUp();
        $this->disableExceptionHandling();
    }

    protected function disableExceptionHandling()
    {
        $this->app->instance(ExceptionHandler::class,new class extends Handler {
            public function __construct() {}

            public function report(\Exception $e)
            {
                // no-op
            }

            public function render($request,\Exception $e) {
                throw $e;
            }
        });
    }
}

Laravel:如何在PhpUnit上启用stacktrace错误的更多相关文章

  1. ios – UIColor到十六进制(网页颜色)

    有没有简单的方法将UIColor转换为十六进制值?

  2. ios – 如果我将自动释放的对象桥接到Core Foundation,我必须使用__bridge或__bridge_retained吗?

    ARC迁移工具遇到了这个问题:特别是,它不确定它是否应该执行__bridge或__bridge_retained.而我也是.-fileURLWithPath返回一个自动释放的对象,在这个地方我不是fileURL的所有者.但与此同时,该对象的保留计数至少为1.我敢打赌,这只能用__bridge来完成.解决方法您只想为此使用常规__bridge强制转换.仅当您想要管理强制转换CF对象的生命周期时,才会使用__bridge_retained.例如:所以__bridge_retained确实告诉编译器你有一个AR

  3. Swift学习笔记十七——导入Foundation使用更多字符串功能

    在Xcode6.3版本中,默认创建playground项目时会导入一个UIKit包。但是如果没有导入UIKit包,可以通过importFoundation,来使用更多的字符串功能。字符串首字母大写方法:capitalizedString输出结果如下:。但是最初str的值并未改变。删除字符串前缀后缀方法:stringByTrimmingCharactersInSet输出结果:。以上方法都在Foundation下,使对字符串的操作更加灵活方便。

  4. Swift中的集合类数据结构

    在那种情况下,你将会需要一种基本的集合类数据结构。继续学习,你将会比较成熟的Cocoa数据结构与对应的纯Swift结构的性能。常见iOS数据结构iOS中三种最常用的数据结构是arrays,dictionaries和sets。除了在Swift和Objective-C中旧的Foundation框架中的数据结构,现在又有了新的仅支持Swift版本的数据结构与语言紧密结合在一起。Swift数组是同质的,意味着每一个Swift数组都只包含一种类型的对象。

  5. Swift 2.0学习笔记Day 1——我的第一行Swift代码

    importFoundationvarstr="HelloWorld"print晕晕、好吧,低头继续往下看,哦明白了第一句:importFoundation表示引入Foundation框架。Foundation是OSX和iOS应用程序开发的基础框架,它包括了一些基本的类,如数字、字符串、数组、字典等。UIKit框架是iOS图形用户界面开发需要框架,包括常见的视图和视图控制器等。

  6. Swift访问Foundation框架

    Foundation框架提供了大量的界面无关的api,为CoreFoundation框架的许多功能提供了Objective-C和Swift的封装。Foundation定义了大量的类,大体可分为值对象集合操作系统服务:文件系统、URL、进程通讯通知归档和序列化-下面的代码,基于Swift,对Foundation常用的api进行了简单的访问。包括结构体NSRange、NSSize、NSPoint,日期NSDate,字符串Nsstring,文件读写,字典操作等。说明写在注释中。

  7. 《从零开始学Swift》学习笔记Day60――Core Foundation框架

    虽然在Swift中调用这种C语言风格的API比较麻烦,但是在OSX和iOS开发过程中,有时候使用CoreFoundation框架的API是非常方便的,例如在与C语言混合编码的时候。CoreFoundation框架与Foundation框架紧密相关,他们具有与相同的接口,但是不同。CoreFoundation框架是基于C语言风格的,而Foundation框架是基于Objective-C语言风格的。看看Swift原生类型与CoreFoundation类型之间的转换示例:这个转换过程中CoreFoundatio

  8. 《从零开始学Swift》学习笔记Day 61――Core Foundation框架之内存管理

    Swift类型内存管理是采用ARC,Foundation类型和CoreFoundation类型内存管理都是采用MRC或ARC,CoreFoundation类型内存管理是基于C语言风格的,它有一个对象所有权的概念Objective-C的MRC内存管理CoreFoundation的内存管理与Objective-C的MRC内存管理密不可分,先介绍一下Objective-C的MRC内存管理。为了保证对象的存在,可以调用retain方法保持对象,retain方法会使其引用计数加1,如果不需要这个对象可以调用rele

  9. 《从零开始学Swift》学习笔记Day 62――Core Foundation框架之内存托管对象与非托管对象

    内存非托管对象内存非托管对象就是内存需要程序员自己管理。这是由于在获得对象的方法中没有使用CF_RETURNS_RETAINED或CF_RETURNS_NOT_RETAINED注释声明,编译器无法帮助管理内存。内存非托管对象使用起来有些麻烦,要根据获得所有权方法,进行相应的处理。调用者不再使用对象时候,Swift代码中需要调用CFRelease函数放弃对象所有权,这是因为Swift是ARC内存管理的。

  10. Swift:Foundation框架中的NS前缀的由来

    可能大家对于著名的NS前缀的由来有一些疑问.绝大多数这些NS前缀的类是NeXTSTEP操作系统中Foundation框架里的一部分,而该操作系统是OSX的基础.NeXTSTEP的程序员对它们的类和函数使用NX前缀.这个前缀在NeXT和Sun合作创建OpenStep之后被改为NS,OpenStep是一个面向对象的框架,它用来在其他平台上提供类似于NeXTSTEP的环境.所以,取决于你向谁提出这个问题,一些人会说NS指的是NeXTSTEP,而另一些人会说NS指的是NeXT/Sun.;]

随机推荐

  1. php – 用户身份验证不会在Laravel包中持久存在

    谢谢事实证明问题在于新的Web中间件,将我需要会话数据的所有路由移动到路由组中,一切正常.

  2. php – 找不到laravel类(适用于localhost但不适用于DO服务器)

    这是一个重复的问题–例如:Laravel4migrations–classnotfound但是,我已经尝试了所有解决方案并且无法解决这个问题.脚本我在我的本地机器上创建了一个Laravel4项目–添加了一些类,控制器,视图等–项目运行良好.然后我将这个新的repo复制到我的DO服务器上–用composer等安装依赖项.该项目看起来不错,除了一个页面发出错误:您可以查看此页面here.我试过了…

  3. php – Laravel SSH服务器未存储在配置文件中

    我有一个涉及服务器管理的项目,我需要执行一些SSH命令.在Laravel我有SSH实用程序(远程),但我必须将配置放在一个文件中.我需要从数据库中连接存储在模型中的凭据.任何想法我怎么能这样做?

  4. php – 如何通过Axios将文件发送到Laravel

    我需要通过Axios将文件从客户端发布到服务器.这是我的Vuejs代码:这是我用于处理已发送文件的Laravel代码:但它始终返回否它不是文件.任何帮助将非常感激.您必须创建一个FormData对象并附加图像文件.一个例子是here.如果有效,请告诉我.

  5. php – Laravel API TokenMismatchException

    我有一个带有帖子数据的API调用;让我们说这是登录过程.使用Chrome的Postman扩展程序,我通过POST发送用户名和密码以登录用户.但是我得到了这样的信息:在我的基本控制器中,我有:当我用beforeFilter删除行时,一切正常.但这不是一个解决方案.任何POST调用都会收到此错误消息.我知道我需要这个_token.但是当我从API调用时,我如何获得此令牌?我知道我可以在Laravel中创建一个令牌,但是当我通过API从外部打电话时我怎么能这样做呢?

  6. php – Laravel重定向到一个路由,但随后apache给出了404错误

    这是我的最终(和工作)vhost配置:

  7. php – Laravel Collection键修改

    我使用Collection类中的filter方法从集合中删除一些对象.但在那次操作之后,有时会出现带钥匙的物体,例剩下1,4,5.我希望在过滤操作后总是有0,1,2,3等顺序的元素.有没有任何优雅的方法来做到这一点,而无需将表重写为新表?您可以使用LaravelCollection的values()方法以序列化顺序生成集合的键,如下所示:希望这可以帮助!

  8. php – Laravel 5,如何测试是否在控制器中选中了Checkbox

    如果选中复选框,我试图获取:在我看来:在我的控制器中:在web.PHP中:但不起作用.我该怎么办?谢谢你的答复.编辑1:这是我的形式很差的建设我相信你真正的问题是你有两种不同的形式.您的复选框采用一种形式,您的提交按钮采用第二种形式.我相信它们都需要采用相同的形式.否则,永远不会返回您的复选框状态,无论其状态如何.在您的视图中,尝试替换您提供的表单标记:

  9. php – Laravel 5 – 根据需要验证数组,但允许传递一个空数组

    我正在使用验证器验证Laravel5.4中的请求,请参阅文档:https://laravel.com/docs/5.4/validation#validating-arrays基本上,这是Controller中的代码:我想要求字段“items”的存在,并且这个代码可以实现,但问题是当“items”字段是空数组时验证失败,即,这是一种不受欢迎的行为.我知道这是“必需”参数的记录行为,但我没有看到任何

  10. php – Laravel扩展Form类

    我正在尝试扩展L4.1中的Form类,但我似乎错过了一些东西.我的文件基于API命名为FormBuilder.PHP,保存在app/libraries/extended/FormBuilder.PHP中.这实际上是我第一次尝试在Laravel中扩展核心类.我似乎无法指出如何正确扩展像这个Form类的核心类.编辑:我将“app/libraries/extended”添加到我的composer.jso

返回
顶部