sphinx mysql redis_如何确保在我的Capybara测试中不为每个场景调用Redis和思考sphinx...

我在我的rails应用程序中使用黄瓜黄瓜。我想运行Sphinx reindex和Redis服务器以运行某些特定的测试场景。但这里的缺点是场景非常缓慢,使其运行数小时。

这是我的env.rb文件

require 'rubygems'

ENV["RAILS_ENV"] = "cucumber"

require 'cucumber/rails'

require 'capybara/cucumber'

require 'capybara/rails'

require 'capybara/session'

require 'rake'

Capybara.default_selector = :css

ActionController::Base.allow_rescue = false

Cucumber::Rails::World.use_transactional_fixtures = true

Capybara.default_wait_time = 4

Capybara.ignore_hidden_elements=false

Capybara::Server.new(Capybara.app).boot

include Rake::DSL

Rake::Task["db:fixtures:load"].invoke

Before('@javascript') do

Capybara.register_driver :selenium do |app|

Capybara::Selenium::Driver.new(app,:browser=>:chrome )

end

Capybara.current_driver = :selenium

Capybara.javascript_driver=:selenium

end

Before('@javascript', '@index') do

`rake ts:in RAILS_ENV=cucumber` unless ThinkingSphinx.sphinx_running?

`rake ts:start RAILS_ENV=cucumber`

end

After('@javascript','@index') do

`rake ts:stop RAILS_ENV=cucumber`

end

Before('@javascript','@redis','@javascript') do

`redis-server config/test_redis.conf`

`rake redis_specifics:cache_build RAILS_ENV=cucumber --trace`

end

After('@javascript','@redis','@javascript') do

pid = `ps aux | grep 'config/test_redis.conf'| grep -v 'grep' | awk '{print $2}'`

`pkill #{pid}`

end还有一个问题是当我在不同的机器上运行它时,Redis的安装依赖性以及用户有权创建和销毁文件夹。有没有更好的方法来处理这种情况?可能是为了实现Rails正常测试框架使用的类似事务风格的fixture?

任何帮助是极大的赞赏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值