rake测试fixtures数据加载相关

在rails中执行rake测试时,测试数据是在app_name\test\fixtures中准备好的(基本上和app_name\app\models中的model是对应的)。

那么在执行rake命令时,fixtures中的数据是怎样加载的呢?

 

1、加载时间:

①执行rake命令:

  [12:34:30 root@rap app_name]$rake --trace 

或者 (只测试units部分)

  [12:34:30 root@rap app_name]$rake test:units --trace 

或者 (只测试functionals部分)

  [12:34:30 root@rap app_name]$rake test:functionals --trace 

 

②在执行rake测试命令后:

   首先,rails会清空app_name\config\database.yml中test区段配置的数据库;

   然后,rails会将database.yml中development区段所配置数据库中的所有表结构导入至test区段配置的数据库;

   然后,rails准备好测试数据库的数据结构后,rake命令开示执行具体的测试case;

   然后,在rake命令执行某个测试文件时,如果发现文件中如下类似的代码时:

...省略...
fixtures :modelones, :modeltwos, :modelthrees
...省略...

           那么,rails就向测试数据库中开始导入fixtures目录中的modelones.yml,modeltwos.yml,modelthrees.yml数据了。

 

 ③在执行rake测试过程中所有具体测试case对测试数据库的增删改操作都是即时的,不会被commit的;

    也就是说具体测试case对测试数据库的增删改操作完成后都是被回滚的。

    因此在执行完rake测试后你会发现测试数据库中的数据和fixtures目录中准备的数据一模一样。

 

④最后需要注意的一点是:

   如果只是按照命令执行某一个测试case↓时,会直接利用现有测试数据库数据,而不会去清空数据库然后再重新导入。

  [12:34:30 root@rap app_name]$ruby test/unit/filename -n testcasename

  [12:34:30 root@rap app_name]$ruby test/functional/filename -n testcasename

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值