相关疑难解决方法(0)

使用RSpec 2关闭一个规格的事务夹具

如何使用RSpec 2关闭仅一个规格(或牛排情景)的交易固定装置?我在网上找到了一些没有成功的东西.

这会导致未定义的方法异常.

describe "MyClass without transactional fixtures" do
  self.use_transactional_fixtures = false
  ...
end

这根本不起作用(事务夹具仍在使用):

describe "MyClass without transactional fixtures" do
  RSpec.configure do |config|
    config.use_transactional_fixtures = false
  end
  ...
end

我还能尝试什么?

rspec ruby-on-rails rspec2 ruby-on-rails-3

35
推荐指数
5
解决办法
2万
查看次数

ActiveRecord错误:SAVEPOINT active_record_1不存在

完整的错误是

ActiveRecord::StatementInvalid: Mysql2::Error: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1
Run Code Online (Sandbox Code Playgroud)

每当我尝试创建一个新的ActiveRecord对象时,我正在编写单元测试并收到此错误 - 但仅在某个点之后.这些行发生在以下行之后:

ActiveRecord::Base.connection.execute "DROP TABLE IF EXISTS foo"
ActiveRecord::Base.connection.execute "CREATE TABLE foo (id INTEGER PRIMARY KEY)"
Run Code Online (Sandbox Code Playgroud)

(如果测试成功,表'foo'将填充数据)

在上面的行之前,我可以写一些类似的东西

User.create(email => 'foo@bar.com')
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,如果我在调用ActiveRecord :: Base.connection.execute之后尝试编写上面的行,那么我会得到上面描述的SAVEPOINT错误.我也尝试将我的执行语句放在一个事务中,但这没有帮助.我很难过.

仅供参考 - 我正在使用Rails 3.2.8

mysql activerecord ruby-on-rails

22
推荐指数
2
解决办法
1万
查看次数