ruby-on-rails – 宝石测试的策略,以确保宝石与Rails 3.x和4.0一
我已经看到了一些虚拟Rails应用程序的示例(为了测试,所以他们通常在测试或规范目录下)用于与Rails 3.x和Rails 4一起使用的评估宝石,但是它们似乎是黑客和功能不全面有点预期,因为它是一个被剥夺的弗兰肯斯坦怪物,试图与各种版本的Rails 3以及Rails 4兼容.
我已经提到试图进行这种测试的项目(截至2013年3月底),比如less-rails和ember-rails,但是这种使用各种版本的Rails进行测试的方法看起来不是很干净,尝试调试非标准Rails应用程序,特别是在Rails的beta版本中是非常不寻常的. 有一个更清洁的方法来测试,这将是一个更好的方法,允许您有一个完整的Rails应用程序的每个版本的Rails来测试,通过一些魔法是不是很难设置或维护,不需要非标准路径黑客在地方等 使用各种版本的Rails(包括至少最新的Rails 3.1.x,3.2.x和4.0.0.beta1)测试宝石的可用策略是什么?每个的优点和缺点是什么? 解决方法
轨道核心列表中的
related thread的几个选项:
选项1:评估宝石和单Rails虚拟应用程序 肯·柯林斯提到使用评估和一个Rails“虚拟”应用程序:
less-rails,ember-rails和high_voltage等使??用类似的技术. 我在restful_json(v3.3.0)中使用了类似于high_voltage的设置,但是使用4.0.0-beta1创建的完整的Rails应用程序,我最低限度修改也可以使用Rails 3.1.x / 3.2.x. 更新:可能希望看到permitters更多的例子. 优点:相当简单可以根据命令行等各种Rails版本进行测试.可以非常少的Rails应用程序配置,或者可以使用完整的Rails应用程序,具有微小的差异. 缺点:对于多个Rails版本,仍然使用相同的Rails应用程序,因此有些条件和不必要的配置. (某些文件不适用于其他版本的Rails等的可能问题,但似乎不是一个大问题.) 选项2:Rails版本作为环境变量,具有单个Gemfile,单Rails虚拟应用程序,依靠travis-ci在多个版本中进行测试 史蒂夫·克拉夫尼克(Steve Klabnik)提到了一个解决方案,它使用一个完整的Rails应用程序(即使在“虚拟”目录下),也没有使用评估宝石,依靠travis-ci来测试:
优点:简单.没有依赖评估宝石(不是这是一个问题,但可能更容易维护). 缺点:仍然重复使用相同的Rails应用程序为多个Rails版本从我可以告诉.除非使用travis-ci或以干净的gemset开头的东西(例如,如果在命令行中运行),那么当前没有区别的gemsets,所以较新的gem可能与旧的Rails等一起使用,但Steve说如果这是一个问题你可以把钥匙和钥匙重新捆绑起来. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |