【问题标题】:Strategy for combining rails and non-rails testing?结合 rails 和 non-rails 测试的策略?
【发布时间】:2012-02-09 19:28:51
【问题描述】:

我们一直很高兴地为带有内置任务的 Rails 应用程序使用 Test::Unit

rake test
rake test:units
rake test:functionals
rake test:integration

随着我们的成长,我们得到了一堆与 Rails 完全无关的 ruby​​ 代码。大多数情况下进入lib。我想让人们可以轻松地为 lib 中可能加载或不加载 Rails 环境的目录添加新测试,并让所有 ruby​​ 测试在 rake:test 上运行。但我不太清楚扩展rake test 的首选方式是什么。我们应该为每个新目录需要一个 .rake 文件吗? - 这看起来很烦人。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 unit-testing testunit


    【解决方案1】:

    Corey Haines 提供talks on fast rails tests,这可能对您有所帮助。

    这里是an example app that demonstrates how you could layout tests that don't require rails(一定要把分支切换到no_rails才能看到最终的布局)。

    即在lib 中创建扩展,从spec_no_rails 测试它们,从您的模型中调用这些扩展,然后使用time rspec -fd -I lib/your_extension/ spec_no_rails/ 运行测试

    【讨论】:

      【解决方案2】:

      您可能正在对 lib 代码进行单元测试,所以它应该放在 test/unit/lib.如果您希望单独测试 lib 代码,可以将其拉出到 gems 中。

      【讨论】:

      • 但随后将为这些测试加载 Rails 环境,这不是必需的。另外,我觉得 test/unit 只是为了测试模型。
      • 听起来你已经有了 gem 候选者,如果它们完全脱离了 rails 环境。并且测试/单元不仅适用于模型,还适用于任何和所有单元测试,例如辅助测试。
      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      相关资源
      最近更新 更多