我使用黄瓜进行集成测试。
我有一个非常大的(30,000+记录)标准设置用于测试。
如何在不重新加载的情况下将其保留在test.sqlite3数据库中?
答案 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这样的模型从模型中创建经文。这可能吗?