rspec - 测量RSpec测试的速度

标签 rspec profiling rspec3

慢速运行的测试对于明显的问题是不必要的。但是默认情况下,RSpec不提供有关单个测试速度的指示,而仅提供摘要信息。

如何改变这种情况并获得配置信息,以使人们能够找到导致测试套件运行缓慢的测试?

最佳答案

使用rspec --profile

输出示例:

Top 10 slowest examples (911.59 seconds, 100.0% of total time):
  WordProcessor should normalize, synonimize and variantify
    874.29 seconds ./spec/word_processor_spec.rb:20
  Normalizer should return singular nominative masculine case (mianownik liczby pojedynczej, forma męska dla przymiotników) of phrases where every word may be normalized to singular nominative case (mianownik liczby pojedynczej)
    37.12 seconds ./spec/word_normalize_spec.rb:35
  VariantFinder should return singular nominative case (mianownik liczby pojedynczej) of complex phrases
    0.06575 seconds ./spec/word_find_all_variants_spec.rb:49
  Normalizer should return singular nominative masculine case (mianownik liczby pojedynczej, forma męska dla przymiotników) of phrases where transforming every word separately is not solution
    0.03283 seconds ./spec/word_normalize_spec.rb:44
  WordProcessor synonimize all produced variants
    0.02776 seconds ./spec/word_processor_spec.rb:49
  Synonym returns array of known synonyms
    0.02643 seconds ./spec/word_synonym_spec.rb:26
  VariantFinder should return all forms including singular nominative masculine case (mianownik liczby pojedynczej, forma męska dla przymiotników)
    0.00995 seconds ./spec/word_find_all_variants_spec.rb:10
  Synonym should allow more specified terms to be synonyms of general, but general not to be synonym of specific
    0.00924 seconds ./spec/word_synonym_spec.rb:48
  Normalizer should return singular nominative masculine case (mianownik liczby pojedynczej, forma męska dla przymiotników)
    0.00814 seconds ./spec/word_normalize_spec.rb:10
  VariantFinder should return all valid variants
    0.00319 seconds ./spec/word_find_all_variants_spec.rb:32

Top 5 slowest example groups:
  WordProcessor
    291.44 seconds average (874.31 seconds / 3 examples) ./spec/word_processor_spec.rb:4
  Normalizer
    7.43 seconds average (37.17 seconds / 5 examples) ./spec/word_normalize_spec.rb:4
  VariantFinder
    0.01222 seconds average (0.08556 seconds / 7 examples) ./spec/word_find_all_variants_spec.rb:4
  Synonym
    0.01005 seconds average (0.04018 seconds / 4 examples) ./spec/word_synonym_spec.rb:4
  RecipeSplitter
    0.0008 seconds average (0.00319 seconds / 4 examples) ./spec/recipe_splitter_spec.rb:6

Finished in 15 minutes 12 seconds (files took 0.30729 seconds to load)
23 examples, 0 failures, 2 pending

http://shuheikagawa.com/blog/2015/09/26/speed-up-your-rspec-tests-by-reviewing-factory-girl/找到解决方案

关于rspec - 测量RSpec测试的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41393138/

相关文章:

ruby-on-rails-3 - 需要帮助编写此 RSpec 测试

ruby-on-rails - 使用 RSpec 测试多态关联

java - 如何使用 YourKit 分析 Domino Agents (AMgr)?

ruby - 如何检查在另一个方法 rspec 中调用的方法的返回值?

ruby-on-rails - 具有多个断言的 RSpec 单元测试

ruby-on-rails - 如何测试使用 puntopagos 和 rest-client 的 Controller Action ?

ruby-on-rails - Rspec:在 Devise::OmniauthCallbacksController 子类中测试重定向

ruby - `require' : cannot load such file - Ruby + Rspec

python - {built-in method select} 在 Python 3 中做什么?

angular - Angular 中的探查器火焰图未显示我的功能