问题标签 [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.

0 投票
2 回答
1091 浏览

ruby-on-rails-3 - 与Spork差异的工厂女孩​​协会

我正在尝试将 Factory Girl 用于带有 Spork 的 RSpec。每当我在没有 spork 的情况下运行测试时,一切都会通过,但是当我使用 Spork 运行它时,所有尝试创建依赖于另一个工厂的工厂实例的测试都会失败。例如:

我的factories.rb代码看起来大致是这样的

我的代码似乎只在存在关联时才会中断,然后它会尝试调用:user. 为什么会发生这种情况?

这是我正在使用的版本

0 投票
2 回答
633 浏览

ruby-on-rails - 如何清理 Spork 输出?

这绝对让我烦死我该怎么办?

Gemfile.lock:

0 投票
1 回答
615 浏览

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)

谢谢,

-达米安

0 投票
2 回答
2239 浏览

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:innew_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:in checkout_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:inblock (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:in loop' /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:inblock 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:in 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:388:inretrieve_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:in retrieve_connection' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/cucumber-rails-1.0.2/lib/cucumber/rails/hooks/active_record.rb:7:inconnection' /Users/john/.rvm/ gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/active_record/transaction.rb:17:in clean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/base.rb:77:inclean' /Users/john/.rvm/gems/ruby-1.9.2-p290 /gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in block in clean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:ineach' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/ database_cleaner/configuration.rb:56:in clean' /Users/john/.rvm/gems/ruby-1.9.2-p290/gems/cucumber-rails-1.0.2/lib/cucumber/rails/hooks/database_cleaner.rb:9:inAfter'

我尝试恢复正常交易,但没有任何乐趣。我可以通过控制台(黄瓜环境)访问数据库并毫无问题地创建/删除/检索记录。下面添加了 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 # 每次运行规范时都会运行此代码。

结尾

0 投票
1 回答
190 浏览

ruby-on-rails - spork 未正确安装在导轨上

我编写了我的第一个 Rails 项目。到目前为止,我已经学习了一些教程并使用 rspec 运行了我的单元测试。

现在我尝试使用其他几个教程安装 spork,但 spork 和单元测试都不起作用。

当我激活 spork 时,它会启动,但随后会说:

没有要加载的文件 - rspec/rails

这是我的宝石文件:

任何的想法?请具体一点,因为这是我的第一个项目。

0 投票
1 回答
209 浏览

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:

0 投票
3 回答
1319 浏览

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
0 投票
2 回答
257 浏览

ruby-on-rails - 测试一项 Cucumber 功能需要几分钟?

我已经安装了以下 gem 进行测试:

我所有的测试都需要很长时间才能运行——用 Cucumber 测试一个功能需要两分钟,而这是在 Spork 几乎所有东西都在 prefork 中运行的情况下。

测试本身最后一次运行耗时0.544s,但好像是在运行cron.rake、rakefile,不知道还有什么。我检查了这两个文件,它们似乎没有任何重要的事情发生。您对我如何改善这种情况有什么建议吗?

读数:

0 投票
2 回答
492 浏览

gem - bundle exec的Spork错误?

每当我运行spork时,我都会收到以下错误:

我的宝石文件:

我已经跑了bundle updategem update甚至gem update --system,但我仍然看到这个错误。运行bundle exec spork有效,但我想知道为什么spork不运行以及如何解决此问题。

0 投票
6 回答
2177 浏览

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 文件的样子

感谢您的建议!