2013-09-24 40 views
1

我一直在用Codeception编写一些单元测试,我的数据库已经越过了测试数据。在阅读的文档,我发现它说:Codeception:从数据库清理测试数据

数据库将被清除,并在每次试验后填充

是否有人知道是否有在YAML文件中任何东西,也许这是我需要把在拆卸方法?

这里是我的测试:

use Codeception\Util\Stub; 

class peopleAdminTest extends \Codeception\TestCase\Test 
{ 
    /** 
    * @var \CodeGuy 
    */ 
    protected $codeGuy; 

    /** 
    * @var the model object 
    */ 
    private $_model; 

    /** 
    * @var some mock data 
    */ 
    private $_data = array("people" => array("title" => "Unit Test Data")); 

    protected function _before() 
    { 
     $this->_model = new People_model(); 
    } 

    public function test_instantiation() 
    { 
     $this->assertInstanceOf('people_model', $this->_model); 
    } 

    public function test_save() 
    { 
     $this->_model->save($this->_data[ 'people' ]); 
     $this->codeGuy->seeInDatabase('pegisis_people', array('title' => 'Unit Test Data')); 
    } 
} 
+0

看看这里:http://codeception.com/docs/modules/Db –

+0

感谢您的评论,我已经有了在我的测试/ _data/dump.sql文件中创建我的表的查询,但我不认为会发生任何事情因为我仍然留在我的数据库中的数据 –

回答

2

你加填入:true和清理:在unit.suite.yml真的吗?

检查供应商/ codeception/src/Codeception/Module/Db.php。 _after()或代码中的拆卸方法不会清除Db。清理工作在_before()中完成,然后执行sql。

+0

感谢您的答复。添加填充:真正的和清理:真的似乎工作,虽然它没有清除数据库第一次运行测试,只有在任何时间后。另外我没有在我的供应商目录中的codeception目录 –