可以增加轨道测试速度吗?

时间:2010-03-22 17:36:25

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

我最近转换为TDD,但随着我的代码库在规模和复杂性方面的增长,我发现自己每次想要运行测试时都会等待更长和更长的时间来加载框架。

我知道rspec的spec_server,但我正在使用带有shoulda的Test :: Unit。我试过Snailgun(http://github.com/candlerb/snailgun),但注意到速度上升很少。我也试过spork-testunit(http://github.com/timcharper/spork-testunit),但它与我现有的测试不完全兼容。

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

3 个答案:

答案 0 :(得分:2)

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

你没有提到一个模拟框架。你在用一个吗?或者你的测试是否很大,他们是否测试登录Web服务器或运行数据库查询等事情? 我听说过一个经验法则,单元测试应该每秒运行大约100次,这就排除了连接和使用实际资源的可能性。访问实际资源的测试往往被认为是集成测试,并且它们被认为比单元测试运行得慢。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

gem install autotest-rails
autotest

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

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