问题标签 [database-cleaner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
619 浏览

ruby-on-rails - 插入 rspec 测试通过的 binding.pry 更改

tl; dr:我试图测试是否将正确的项目添加到数组中。当我运行测试时,它说东西被不加选择地添加到数组中。但是,当我将 binding.pry 放在 LessonPackage.available 的第一行时,测试通过了……但是现在,另外两个测试失败了。

现在这里有一些代码。

在原始测试中,我测试是否将正确数量的项目添加到数组中。这将测试 :current 范围。这是测试:

请注意,@old_package 的“当前”属性应为 false。这是正在测试的代码:

测试失败!但我知道这段代码有效,不仅因为它在开发模式下有效,还因为当我将 binding.pry 放在 LessonPackage.available 的第一行时,它突然有效!但是现在另一个测试被打破了:

给出的原因是附加到第一节课预订的课程包的 ID 与创建的原始课程包不同。注意:此测试之前有效。唯一不同的是 binding.pry。

我正在使用 database_cleaner,这就是我配置它的方式:

0 投票
0 回答
195 浏览

rspec - 规范有时通过有时不通过

我有要求规格:

有时完全通过,但有时我得到:

我不知道为什么,这很烦人。我在每次测试后使用以下命令清理数据库database_cleaner

编辑:

控制器:

看法:

部分的:

模型:

现在我也有类似的测试:

而且@json.length几乎总是0如此,但有时确实如此1

0 投票
2 回答
5145 浏览

ruby-on-rails - Capybara webkit 的数据库清理器问题

我正在使用 Cucumber 编写我的集成测试和Database Cleaner来保持我的数据库清洁。一切都完美无缺,因为我的测试不需要 Javascript。

我可以使用Capybara webkit使这些最后的测试通过,但是我的数据库根本没有被清理。

这是我的features/support/env.rb文件:

我尝试了类似的方法检查 Capybara 使用了哪个驱动程序,但它没有用。我也尝试了这篇文章第三部分中提到的黑客,但没有任何效果......

我真的不知道如何实现这一点,任何帮助将不胜感激。

提前致谢。

0 投票
1 回答
3848 浏览

rspec-rails - Rails 4 数据库清理器

我正在尝试为 rails 4 应用程序完成一些测试,但我一直遇到 database_cleaner 的问题。问题是数据库没有被清理并且警告不断出现:

我在规范助手中设置的配置是:

最后这是我的 gemfile

在这个问题上的任何帮助都会非常有帮助。谢谢!

0 投票
1 回答
928 浏览

ruby-on-rails - 将 rspec、zeus 和 database_cleaner 与两个不同的 active_record 数据库一起使用,以未定义的方法 `query_options' 结束 nil:NilClass 错误

我想使用 zeus (0.13.3) 为 ruby​​ 2.0.0 上的 rails (3.2.11) 应用程序预加载我的 rails 环境,并使用 database_cleaner (0.9.1) 清理数据库。只要我只使用一个 mysql 数据库,它就可以正常工作。在应用程序中,我们必须使用两个不同的 mysql 数据库。 编辑:需要提到的是,我使用了这里描述的共享连接黑客。

在不使用 zeus 的情况下运行我的规范就像预期的那样工作。但是,如果我使用它,每次测试都会在创建错误记录的那一刻失败:

如何解决?

设置是这样的:

在使用第二个连接的所有模型的抽象基类中,我们做

在我的 spec_helper.rb 文件中,我设置了 database_cleaner:

编辑:

规范/支持/shared_connection.rb

0 投票
1 回答
1173 浏览

ruby-on-rails - 在后挂钩 NoMethodError 中发生错误:nil:NilClass (AngularJS) 的未定义方法“每个”

我正在使用带有 postgres、rspec 2.13、capybara 2.0.3 和 database_cleaner 0.9.1 的 Rails 3.2.13。我也在使用 AngularJS。我有一个带有 js:true 的规范,它测试表单的提交(创建一个标准的 rails 模型实例)。唯一可能不是标准 Rails 的是我使用 AngularJS 通过 Ajax 提交此表单。每当规范运行时,我都会收到以下错误:

该规范随后失败。在我看来,这个错误发生在 database_cleaner 运行时的 after 钩子中。我在我的 spec_helper.rb 中得到了这个:

单击表单的提交按钮后通过 AngularJS 提交表单的代码是:

知道吗,我在这里缺少什么?

0 投票
1 回答
104 浏览

ruby-on-rails - 为什么此 RSpec 描述规范根据方法显示两种不同的结果?

给定

it块中,这通过了。注释掉的#its 部分没有通过。我得到两个不同的对象。 expected: "daniel3@example.com" got: "daniel133@example.com" (using ==)

这是因为database_cleaner宝石吗?某种方式我没有正确设置 factory/database_cleaner?

为什么它在它的块中不匹配,但在它的块中匹配?怎么可能不同?

0 投票
2 回答
1282 浏览

ruby-on-rails - rspec DatabaseCleaner 跳过清理例如组元数据标记

如何标记示例组,以便在每个示例之间不清理数据库,而是在整个组之前和之后清理数据库?并且未标记的规范应该在每个示例之间清理数据库。

我想写:

所以在我的 spec_helper.rb 我放:

问题是dont_clean: nilspec_helper 中的(或错误的)块在未指定元数据标记时不会运行。在清理示例之前是否有另一种方法来检查 :dont_clean 的存在?

0 投票
2 回答
1616 浏览

ruby-on-rails - DB Cleaner not cleaning database after each test after switching from sqlite to PostgreSQL

This config worked fine when I was using sqlite:

When I switched to PostgreSQL I began getting errors when tests depended on the id number of entries in the database. I looked at the database during the tests and it was never cleaning the database.

If I switch to the following config:

All of my tests pass, but I'm having to call clean before and after my methods tests?

I shouldn't have to clean the database before and after each test - right? I feel like I'm misunderstanding something somewhere. What am I failing to understand.

0 投票
1 回答
2229 浏览

ruby-on-rails - 自定义事务不适用于 rspec 中的 database_cleaner

在我们使用 MySql 的 Rails 4.0 应用程序中,我们使用 rspec 和配置了 strategy :transaction 的 database_cleaner gem 来为每个测试用例清理我们的数据库。如果我们有应该回滚的自定义事务,它就不起作用。

没有 database_cleaner gem,只使用标准方式:

一切都按方面进行。但是为了使用 JavaScript 运行特性测试,我们需要 database_cleaner 将夹具删除策略更改为 :truncation。

我们如何将 database_cleaner 与自定义事务一起使用,为什么它与标准 rspec 事务策略不同?