问题标签 [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.
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,这就是我配置它的方式:
rspec - 规范有时通过有时不通过
我有要求规格:
有时完全通过,但有时我得到:
我不知道为什么,这很烦人。我在每次测试后使用以下命令清理数据库database_cleaner
:
编辑:
控制器:
看法:
部分的:
模型:
现在我也有类似的测试:
而且@json.length
几乎总是0
如此,但有时确实如此1
。
ruby-on-rails - Capybara webkit 的数据库清理器问题
我正在使用 Cucumber 编写我的集成测试和Database Cleaner来保持我的数据库清洁。一切都完美无缺,因为我的测试不需要 Javascript。
我可以使用Capybara webkit使这些最后的测试通过,但是我的数据库根本没有被清理。
这是我的features/support/env.rb文件:
我尝试了类似的方法来检查 Capybara 使用了哪个驱动程序,但它没有用。我也尝试了这篇文章第三部分中提到的黑客,但没有任何效果......
我真的不知道如何实现这一点,任何帮助将不胜感激。
提前致谢。
rspec-rails - Rails 4 数据库清理器
我正在尝试为 rails 4 应用程序完成一些测试,但我一直遇到 database_cleaner 的问题。问题是数据库没有被清理并且警告不断出现:
我在规范助手中设置的配置是:
最后这是我的 gemfile
在这个问题上的任何帮助都会非常有帮助。谢谢!
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
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 提交表单的代码是:
知道吗,我在这里缺少什么?
ruby-on-rails - 为什么此 RSpec 描述规范根据方法显示两种不同的结果?
给定
在it
块中,这通过了。注释掉的#its 部分没有通过。我得到两个不同的对象。 expected: "daniel3@example.com"
got: "daniel133@example.com" (using ==)
这是因为database_cleaner
宝石吗?某种方式我没有正确设置 factory/database_cleaner?
为什么它在它的块中不匹配,但在它的块中匹配?怎么可能不同?
ruby-on-rails - rspec DatabaseCleaner 跳过清理例如组元数据标记
如何标记示例组,以便在每个示例之间不清理数据库,而是在整个组之前和之后清理数据库?并且未标记的规范应该在每个示例之间清理数据库。
我想写:
所以在我的 spec_helper.rb 我放:
问题是dont_clean: nil
spec_helper 中的(或错误的)块在未指定元数据标记时不会运行。在清理示例之前是否有另一种方法来检查 :dont_clean 的存在?
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.
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 事务策略不同?