经过重要的故障排除之后,我发现我需要运行一次rake spec (我可以用control-c中止),然后才能直接运行rspec(例如,在我们的规格子集中)。 我们正在运行Rails 3.0.7和RSpec 2.5.0。 显然,rake正在运行一些重要的数据库设置任务/代码(我们在根级rails Rakefile和其他地方有自定义代码)。 如何运行raketesting数据库设置任务/代码而不运行rake spec ? 除了能够在一个文件子集上运行rspec外,我还使用specjour将这些规范分布在多个内核中(还没有成功将它们分布到整个局域网上),但是我看到了和运行rspec直接:在specjour工作之前,我需要在每个testing数据库(假设是两个内核)上运行rake spec : rake spec TEST_ENV_NUMBER=1 control-c (after tests start) rake spec TEST_ENV_NUMBER=2 control-c (after tests start) specjour 注意:我的config / database.yml有这个条目进行testing(对于平行testing的gem是常见的): test: adapter: postgresql encoding: unicode database: test<%=ENV['TEST_ENV_NUMBER']%> username: user password: parallel_tests似乎正确地设置了它的数据库,但是我们的许多specs失败了。 我还应该提到,运行specjour prepare导致Postgreslogging错误,它找不到数据库,但它创build它们(没有表)。 在随后的运行中,不会logging错误,也不会创build表。 我的整个问题可能只是一个prepare的bug,所以我在github上报告了它。 我认为我可以通过在.specjour / hooks.rb中设置Specjour::Configuration.prepare在每个specjourtesting数据库上运行任意代码,所以如果有任何rake任务或者其他需要运行的代码,它可能在那里工作。