2

我最近转换到 TDD,但是随着我的代码库的大小和复杂性的增长,我发现自己每次要运行测试时都要等待越来越长的时间来加载框架。

我知道 rspec 的 spec_server,但我将 Test::Unit 与 shoulda 一起使用。我尝试了 Snailgun(http://github.com/candlerb/snailgun),但发现速度几乎没有增加。我也尝试过 spork-testunit ( http://github.com/timcharper/spork-testunit ),但它与我现有的测试并不完全兼容。

运行测试的延迟是一个明确的痛点,让我远离 TDD(至少在 Rails 中)。有人知道其他选择吗?

4

3 回答 3

2

您是否在需要的地方使用模拟?

您没有提到模拟框架。你在用一个吗?或者您的测试是否很大,它们是否测试诸如登录 Web 服务器或运行数据库查询之类的东西?

我听说过一个经验法则,即单元测试应该每秒运行大约 100 次,这排除了连接和使用实际资源的可能性。访问实际资源的测试往往被认为是集成测试,并且它们被理解为比单元测试运行得更慢。

于 2010-03-22T20:15:06.103 回答
0

尝试自动测试。它监视您的文件并在后台运行它们。当您完成编辑时,它已经完成了测试供您查看。

gem install autotest-rails
autotest

https://rubygems.org/gems/autotest-rails

http://ph7spot.com/musings/getting-started-with-autotest

于 2014-06-01T04:15:01.087 回答
0

您可以配置database.yml为使用内存中的 SQLite3 数据库进行测试。

于 2010-03-22T20:46:26.310 回答