如何在没有测试套件的情况下升级Rails 2.3到3.2(或4.X)?

时间:2014-04-10 18:58:31

标签: ruby-on-rails ruby unit-testing ruby-on-rails-3.2 rails-3-upgrade

我们的Rails 2.3.4(ruby 1.8.7)应用程序很大?(300个型号,21,000个LOC和75个控制器,35,000个LOC),复杂程度中等,我们计划将此应用程序升级到Rails 3.2(或Rails) 4.X)

现在最大的障碍是我们没有一个测试用例!

我在网上搜索,stackoverflow,我确实找到了一些有用的链接,但他们都假设应用程序将有良好的测试覆盖率但在我们的情况下它不是真的所以考虑到所有这些,  我有以下问题吗?

  • 我应该升级哪个版本的Rails 3.X(使用ruby 1.9.3或2?)或Rails 4.X&红宝石2?
  • 每个人都建议采用增量方式(首先是rails 3,然后是ruby 1.9然后是rails 3.2然后是Rails 4)这对我们的情况有帮助吗
    • 因为我们没有测试套件
    • 由于它是一个大应用程序,每次升级后都会进行大量的手动测试,因此在一次升级后的每次小增量更改后重复测试(虽然更改是大型测试只能进行一次)是正确的方法?
  • 让我们假设即使我们现在编写测试用例(对于rails 2.3)也是如此 测试在更新版本上顺利运行?还是我们需要写新鲜的 升级后的Rails版本的测试用例?

  • 我知道估算有点难,但仍然有人尝试过升级 你的大牌应用程序和花了多少时间?

考虑到以上所有我们应该遵循的最佳策略?

欢迎任何指向相关博客和建议的指针。

先谢谢。

2 个答案:

答案 0 :(得分:1)

如果是我,我会咬紧牙关并立即为2.3编写测试。其中很多都会转移,其中一些不会。编写完成后,将应用程序升级到4.x,看看有什么中断。然后弄清楚它是否是代码或测试并相应调整。

没有测试......我没有建议:/

答案 1 :(得分:0)

首先,您肯定会使用Ruby 1.9升级到Rails 3。在我们的例子中,我们有一个大型应用程序,从Ruby 1.8.7迁移到1.9远比从Rails 2.3迁移到3.0要少得多。我们花了几个月的时间才开始使用1.9,但是花了一年多时间才开始使用Rails 3.0

然后使用Ruby 2.0升级到Rails 4。它不容易升级,但肯定会提高应用程序性能。