问题标签 [spork]
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-3 - 与Spork差异的工厂女孩协会
我正在尝试将 Factory Girl 用于带有 Spork 的 RSpec。每当我在没有 spork 的情况下运行测试时,一切都会通过,但是当我使用 Spork 运行它时,所有尝试创建依赖于另一个工厂的工厂实例的测试都会失败。例如:
我的factories.rb
代码看起来大致是这样的
我的代码似乎只在存在关联时才会中断,然后它会尝试调用:user
. 为什么会发生这种情况?
这是我正在使用的版本
ruby-on-rails - 如何清理 Spork 输出?
这绝对让我烦死我该怎么办?
Gemfile.lock:
rspec2 - 使用 Spork 进行 Rails 3.1 RC5 可安装引擎测试
我已经能够让 RSpec、Cucumber 和 Autotest 与我的 Rails 3.1 Mountable Engine 一起工作。事情失败的地方是试图将Spork整合到组合中。Spork 运行良好,我的测试使用了 Spork,但我遇到的问题是,除非我关闭效率不高的 Spork 服务器,否则 Spork 不会重新加载模型。我也在使用 factory_girl 。我使用Spork.trap_method尝试了各种方法,但没有任何效果。
这是我正在使用的宝石(尽管由于它给我带来的悲伤,我已经在我的项目中放弃了 Spork):
- 导轨(3.1.0.rc5)
- 叉叉 (0.9.0.rc9)
- rspec (2.6.0)
- rspec 核心 (2.6.4)
- rspec-expectations (2.6.0)
- rspec 模拟 (2.6.0)
- rspec-rails (2.6.1)
- factory_girl (2.0.3)
- factory_girl_rails (1.1.0)
- 黄瓜 (1.0.2)
- 黄瓜导轨 (1.0.2)
谢谢,
-达米安
ruby-on-rails - Rails:黄瓜不清理数据库
我在黄瓜和数据库事务方面遇到了一些问题 - 具体来说,当我运行测试套件时,之后没有清理数据库事务。
我正在使用 spork、postgres 运行 rails 3.1。
最初 features/support/env.rb 被设置为使用 database_cleaner,但在每次调用 db 时始终出现以下错误:
未指定数据库。缺少参数:数据库。(参数错误)/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/postgresql_adapter.rb:22:in
postgresql_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in
new_connection' /Users/john /.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:302:incheckout_new_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:254:in
block (2 levels) in checkout' /Users/ john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:250:inloop' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:250:in
block in checkout'/Users/john/。 rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:inmon_synchronize' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:249:in
结帐'/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:151:inconnection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_pool.rb:388:in
retrieve_connection'/Users/ john/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0.rc4/lib/active_record/connection_adapters/abstract/connection_specification.rb:107:inretrieve_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/cucumber-rails-1.0.2/lib/cucumber/rails/hooks/active_record.rb:7:in
connection' /Users/john/.rvm/ gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/active_record/transaction.rb:17:inclean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/base.rb:77:in
clean' /Users/john/.rvm/gems/ruby-1.9.2-p290 /gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:inblock in clean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in
each' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/ database_cleaner/configuration.rb:56:inclean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/cucumber-rails-1.0.2/lib/cucumber/rails/hooks/database_cleaner.rb:9:in
After'
我尝试恢复正常交易,但没有任何乐趣。我可以通过控制台(黄瓜环境)访问数据库并毫无问题地创建/删除/检索记录。下面添加了 config/database.yml、features/support/env.rb、config/environments/cucumber.rb 和 rspec/spec_helper.rb 文件。任何建议都非常感谢 - 这个让我难倒了一段时间:
配置/数据库.yml
功能/支持/ENV.RB
配置/环境/黄瓜.RB
BusinessschoolCorporate::Application.configure do # 此处指定的设置将优先于 config/application.rb 中的设置
# 测试环境专门用于运行您的应用程序的
测试套件。否则,您永远不需要使用它。记住
# 你的测试数据库是测试套件的“临时空间”,并且在测试运行之间被擦除并重新创建。不要依赖那里的数据!
config.cache_classes = true
config.use_transactional_fixtures = true# 使用 Cache-Control 为性能测试配置静态资产服务器 config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"# 当你不小心调用 nil 上的方法时记录错误消息
config.whiny_nils = true# 显示完整的错误报告并禁用缓存
config.consider_all_requests_local = true
config.action_controller.perform_caching = false# 引发异常而不是渲染异常模板
config.action_dispatch.show_exceptions = false# 在测试环境中禁用请求伪造保护
config.action_controller.allow_forgery_protection = false# 告诉 Action Mailer 不要将电子邮件发送到现实世界。# :test 传递方法在 # ActionMailer::Base.deliveries 数组中累积发送的电子邮件。
config.action_mailer.delivery_method = :test# 创建测试数据库时使用 SQL 而不是 Active Record 的模式转储器。# 如果你的模式不能被模式转储器完全转储,这是必要的,# 比如你有约束或特定于数据库的列类型 # config.active_record.schema_format = :sql
# 将弃用通知打印到标准错误
config.active_support.deprecation = :stderr end
SPEC/SPEC_HELPER.RB
需要'rubygems' 需要'spork'
Spork.prefork do # 在此块中加载更多内容将使您的测试运行得更快。但是,# 如果您更改此处加载的库中的任何配置或代码,您将需要重新启动 spork 以使其生效。# 当你运行 'rails generate rspec:install' ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment", FILE )时,这个文件被复制到 spec/ 'rspec/rails'
# 需要支持带有自定义匹配器和宏等的 ruby 文件,# 在 spec/support/ 及其子目录中。
Dir[Rails.root.join("spec/support/* / .rb")].each {|f| 要求 f}RSpec.configure 做 |config| # == Mock Framework # # 如果您更喜欢使用 mocha、flexmock 或 RR,请取消注释相应的行: # # config.mock_with :mocha # config.mock_with :flexmock # config.mock_with :rr config.mock_with :rspec
ActiveRecord 固定装置 # config.fixture_path = "#{::Rails.root}/spec/fixtures"
事务中的每个 # 示例,删除以下行或指定 false # 而不是 true。config.use_transactional_fixtures = true 结束
结尾
Spork.each_run do # 每次运行规范时都会运行此代码。
结尾
ruby-on-rails - spork 未正确安装在导轨上
我编写了我的第一个 Rails 项目。到目前为止,我已经学习了一些教程并使用 rspec 运行了我的单元测试。
现在我尝试使用其他几个教程安装 spork,但 spork 和单元测试都不起作用。
当我激活 spork 时,它会启动,但随后会说:
没有要加载的文件 - rspec/rails。
这是我的宝石文件:
任何的想法?请具体一点,因为这是我的第一个项目。
rspec - What is the right method to call Rspec.configure when spork is used? prefork or each_run?
I need to setup mongoid collections clean up for each spec. What is the right method to call Rspec.configure when spork is used? prefork or each_run?
Here is my current setup:
ruby-on-rails - Spork不会在lib中重新加载文件
我正在使用 spork 运行 rspec,但我无法在 lib 中获取文件以在连续的 rspec 运行时重新加载。我试过在“Spork.each_run”中要求文件
我没有收到任何回复,所以我会尝试进一步解释。我的 Rails 应用程序中有以下文件:
- 库/car.rb
- 规范/lib/car_spec.rb
要运行测试,首先我启动 spork 然后运行 'rspec spec/lib/car_spec.rb'
RSpec 没有看到我对 Car 类的更改,除非我重新启动 spork。
有什么帮助吗?
我上线了:
- 导轨 3.1.0.rc6
- rspec 2.6.0
- spork 0.9.0.rc9
ruby-on-rails - 测试一项 Cucumber 功能需要几分钟?
我已经安装了以下 gem 进行测试:
我所有的测试都需要很长时间才能运行——用 Cucumber 测试一个功能需要两分钟,而这是在 Spork 几乎所有东西都在 prefork 中运行的情况下。
测试本身最后一次运行耗时0.544s,但好像是在运行cron.rake、rakefile,不知道还有什么。我检查了这两个文件,它们似乎没有任何重要的事情发生。您对我如何改善这种情况有什么建议吗?
读数:
gem - bundle exec的Spork错误?
每当我运行spork
时,我都会收到以下错误:
我的宝石文件:
我已经跑了bundle update
,gem update
甚至gem update --system
,但我仍然看到这个错误。运行bundle exec spork
有效,但我想知道为什么spork
不运行以及如何解决此问题。
ruby-on-rails - Spork/Autotest 不会自动获取更改
我正在按照http://ruby.railstutorial.org/上的教程处理我的第一个 Rails 应用程序. 我已经完全按照教程中的说明设置了我的开发环境(我正在使用带有 Lion 的 Macbook Pro),并且它可以正常工作,除了一个小问题。我首先编写失败的测试,然后对代码进行更改以使其通过,我可以在浏览器中检查页面是否正常工作,但由于某种原因,测试结果仍然是“红色”。我有一个运行 3 个选项卡的终端,第一个选项卡在其中运行 spork(bundle exec spork),第二个选项卡在其中运行 rails 服务器(rails s),第三个选项卡在其中进行所有命令行更改并运行测试(autotest || 捆绑执行 rspec 规范/)。我必须重新启动 spork、rails 服务器,然后再次测试以查看它们是否变为“绿色”。
这是预期的行为吗?因为根据教程,大多数时候我应该能够看到它们变绿而无需重新启动服务器/spork。
编辑
这就是我的 spec_helper.rb 文件的样子
感谢您的建议!