我最近转向了TDD,但随着我的代码库的规模和复杂性的增长,我发现自己每次想要运行测试时都要等待框架加载的时间越来越长。
我知道rspec的spec_server,但我使用的是带有shoulda的Test::Unit。我尝试了蜗牛枪(http://github.com/candlerb/snailgun),但发现速度几乎没有提高。我也尝试过spork testunit (http://github.com/timcharper/spork-testunit),但它与我现有的测试并不完全兼容。
运行测试的延迟无疑是一个痛点,它让我放弃了TDD (至少使用Rails)。有没有人知道还有其他选择?
发布于 2010-03-23 04:15:06
你在需要的地方使用mock了吗?
你没有提到一个模拟框架。你在用吗?或者您的测试很大,它们是否测试登录到web服务器或运行数据库查询之类的事情?
我听说过一条经验法则,单元测试应该每秒运行大约100次,这排除了连接和使用实际资源的可能性。访问实际资源的测试往往被认为是集成测试,并且它们的运行速度比单元测试慢。
发布于 2010-03-23 04:46:26
您可以将database.yml配置为使用内存中的SQLite3数据库进行测试。
发布于 2014-06-01 12:15:01
尝试使用autotest。它监视你的文件并在后台运行它们。当您完成编辑时,它已经完成了测试,供您检查。
gem install autotest-rails
autotesthttps://rubygems.org/gems/autotest-rails
http://ph7spot.com/musings/getting-started-with-autotest
https://stackoverflow.com/questions/2494419
复制相似问题