将大型数据集留在测试数据库中而不重新加载

时间:2009-11-09 20:32:00

标签: ruby-on-rails testing cucumber

我使用黄瓜进行集成测试。

我有一个非常大的(30,000+记录)标准设置用于测试。

如何在不重新加载的情况下将其保留在test.sqlite3数据库中?

3 个答案:

答案 0 :(得分:1)

测试运行完成后,Cucumber不会清理数据库,除非您在After文件的env.rb块中添加了一些代码来执行此操作。

如果数据永远不会改变,那么将其加载到db中一次并假设它在运行黄瓜时存在。如果在方案中更改数据库中的某些数据,请确保使用transactional fixtures,并在方案完成时回滚这些更改。

答案 1 :(得分:0)

SQLite数据库只是一个文件。难道你不能在开始测试之前复制所需的数据库文件(预填充所需的数据)吗?

答案 2 :(得分:0)

好的,根据你的说法,你可以这样做:

Background: Create verses 
 Given the following verses exist:
 |number|text |
 |2999  |hello|
 |2998  |hello| 
 |2997  |hello| 
 |2996  |hello| 

Scenario: A user sees only verses in their reading plan
  Given I am signed in as the Reader "Rodreegez"
  And I have reading recomendations
  When I follow "Read"
  Then I should see the following verses: 
  |number|text |
  |2999  |hello| 
  |2998  |hello| 
  And I should not see the following verses: 
  |number|text | 
  |2997  |hello| 
  |2996  |hello| 

当然,这涉及使用像Factory Girl这样的模型从模型中创建经文。这可能吗?