2013-05-15 121 views
1

我试图在Laravel内开始编写测试。 我认为编写我自己的基本TestCase是个好习惯,它运行测试设置(例如迁移)。自动加载Laravel测试

<?php 

class TestCase extends PHPUnit_Framework_TestCase { 
    public function setUp() 
    { 
     parent::setUp(); 

     // just for example: 
     DB::table('categories')->first(); 
    } 

} 

在那之后,我想继承上面创建的一个我所有的TestCase

<?php 

class TestExample extends TestCase { 
    public function testSomethingIsTrue() 
    { 
     $this->assertTrue(true);  
    } 
} 

所以现在我有三个问题:

  1. 我的TestCase抛出错误,没有找到类DB。为什么heck是测试不自动加载Laravel框架类?

  2. PHPUnit告诉我(有警告)我的TestCase不包含任何测试,但这是我对这个类的疑似行为,我该如何避免此消息?

  3. 我的TestExample找不到类TestCase。

你能帮我理解吗?!我如何配置测试特定的自动加载?

更新: 答案1:因为我在NetBeans IDE中运行测试,所以需要配置!设置正确的phpunit.xml帮助

+0

您标记了Laravel 3,但'Artisan'是Laravel 4类,混合? – Usman

+0

好的,这绝对可以...... :) – skorzinetzki

+0

我刚刚尝试过另一个Laravel类:DB。这个班也没有找到。所以问题仍然是:我如何在测试中使用Laravel类? – skorzinetzki

回答

2

正如我们的讨论中所揭示的那样,当您使用IDE(NetBeans,PhpStrom等)运行PHPUnit测试时,必须确保您的IDE已正确配置以赶上phpunit.xml

+0

只是最后一个问题(用于验证):生成一个测试用例,运行一个基本的设置,这应该是一个抽象类,因为它不能由phpunit运行。然后我的测试扩展了这个,并且应该在设置中调用它的父设置方法。那么我需要一个包含该类的php文件的要求,以便找到该类?!这是我的方式,现在我解决了,但它是正确的方式?谢谢 – skorzinetzki

+0

在Laravel 4中已经有一个TestCase类,它是自动加载的,为什么你需要再次? – Usman

+0

,因为我现在在laravel 3上:) – skorzinetzki