运行rspec的不同机器中规格的不同数组顺序

时间:2012-03-30 20:53:17

标签: ruby-on-rails ruby sql-server odbc

我正在使Rails应用程序能够在除了共享的VM之外的其他机器上运行(CentOS 5.5)。

我已经通过测试来传递运行10.7.3的OSX,除了少数几个,输出ok结果,但使用不同的顺序,例如:

'some test' FAILED
expected: [831557419, 372199733, 89450236],
     got: [372199733, 831557419, 89450236] (using ==)

我有点失去了如何调试和解决这个问题。我可以看看任何提示或线索吗?

我正在使用unixodbc,freetds和activerecord-sqlserver-adapter。它是Rails 2.3.8应用程序和RSpec 1.3。

PS:编辑以指出项目中有固定装置。有人认为这可能是问题(夹具是在这里以不同的顺序创建的),但我对如何解决它感到迷茫。

PPS:这是在从原始VM克隆的多个VM上运行的当前应用程序。

测试具有大部分这些预期值硬编码,但测试确实传递了这些VM。如果可能的话,我宁愿不改变实际的测试。

我是新来的代码库,在咨询工作上。我正在尝试在我的机器上进行这项工作以证明我们可以使用任何机器进行开发(而不是提供的VM,没有人喜欢编码)。订单很重要。

2 个答案:

答案 0 :(得分:3)

如果输出可以按任何顺序接受,请使用以下表格:

output.should =~ [831557419, 372199733, 89450236]

答案 1 :(得分:2)

通过更改Ruby版本解决了这个问题。显然1.8.7 @ patchlevel> 250会改变导致此行为的内容。