如何运行RSpec与Alchemy CMS并列的应用程序

Chr*_*ers 1 rspec ruby-on-rails alchemy-cms

我正在开发一个与Alchemy CMS并列的Rails 4.1应用程序.我不希望管理部分使用Alchemy的管理界面.(我正在与ZURB基金会合作.)

当我想在RSpec中运行我自己的规格时,麻烦开始酿造.虽然应用程序在开发模式下运行良好,但我在测试中遇到此错误:

Failure/Error: visit new_staff_program_path
     Alchemy::DefaultLanguageNotFoundError:
       No default language found. Have you run the rake alchemy:db:seed task?
Run Code Online (Sandbox Code Playgroud)

看起来控制器正在运行一些期望数据到位的过滤器.对于我的应用程序的某些部分,有没有办法可以"退出"这个?

现在,这是我的解决方案......

我有一个单独的管理员正在扩展的基本控制器.在其中,我指示它跳过before_actionAlchemy引擎添加到控制器层的调用:

class Staff::Base < ApplicationController
  # Filters
  skip_before_action :set_current_alchemy_site, :set_alchemy_language

  # Layout
  layout 'admin'
end
Run Code Online (Sandbox Code Playgroud)

如果有人有任何更好的解决方案,请告诉我.

tvd*_*yen 5

是的,确实非常简单;)

在您的运行测试套件中,spec_helper您可以添加一个Rspec.config块,用于播放Alchemy的基础数据:

# spec/spec_helper.rb
require 'alchemy/seeder'

RSpec.configure do |config|
  config.before type: :feature do
    Alchemy::Seeder.seed!
  end
end
Run Code Online (Sandbox Code Playgroud)