我正在使 Rails 应用程序能够在除共享虚拟机(CentOS 5.5)之外的不同计算机上运行。
我已经在运行 10.7.3 的 OSX 上通过了测试,但少数确实输出了正常结果,但顺序不同,例如:
'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:这是在从原始虚拟机克隆的多个虚拟机上运行的当前应用程序。
测试对大部分预期值进行了硬编码,但测试确实在这些虚拟机上通过了。如果可能的话,我宁愿不改变实际测试。
我是代码库新手,从事咨询工作。我试图在我的机器上进行这项工作,以证明我们可以使用任何机器进行开发(而不是提供无人喜欢编码的虚拟机)。顺序很重要。
最佳答案
如果输出以任何顺序都可以接受,请使用以下形式:
output.should =~ [831557419, 372199733, 89450236]
关于ruby-on-rails - 运行 rspec 的不同机器上规范的数组顺序不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950282/