Tag: 代码覆盖率

SimpleCov有多个应用程序 – 或者简而言之,Simplecov如何工作?

我正在尝试设置SimpleCov为3个应用程序生成报告,这些应用程序从本地gem共享大部分代码(模型,控制器),但每个应用程序使用的代码规范都在每个./spec内部,而不是在gem本身。 更清楚的例子。 当我在app_1中运行bundle exec rspec spec时,它使用本地gem中的共享模型,我想得到(准确)报告这个app_1里面的所有规格./spec。 本地gem还有一些专门用于app_2的模型,在命名空间内,所以当我在app_1中运行测试套件时,我想跳过这些文件的报告。 我正在尝试通过app_1 / spec / spec_helper中的以下代码实现此目的。 # This couple of lines are needed to generate report for the models, etc. inside the local gem. SimpleCov.adapters.delete(:root_filter) SimpleCov.filters.clear SimpleCov.adapters.define ‘my_filter’ do root = SimpleCov.root.split(“/”) root.pop add_filter do |src| !(src.filename =~ /^#{root.join(“/”)}/) end add_filter “/app_2_namespace/” end if ENV[“COVERAGE”] == “true” SimpleCov.start ‘rails’ […]

ruby rspec不会使用simplecov

我安装了simplecov gem并添加了 require ‘simplecov’ SimpleCov.start 到spec_helper.rb文件,现在,如果我在some_file_spec.rb文件中包含spec_helper.rb并尝试运行它我得到这个 c:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core/configuratio n.rb:116:in `require’: no such file to load — rspec/core/mocking/with_rspec (Lo adError) from c:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core /configuration.rb:116:in `mock_framework’ from c:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core /configuration.rb:376:in `configure_mock_framework’ from c:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core /command_line.rb:19:in `run’ from c:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core /runner.rb:55:in `run_in_process’ from c:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core /runner.rb:46:in `run’ from c:/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.5.1/lib/rspec/core /runner.rb:10:in `block in autorun’ Coverage report generated for c:/Ruby192/bin/rspec player_spec.rb to c:/Users/Ko Le/Documents/NetBeansProjects/CHCGame/spec/coverage. 0.0% covered. […]

ruby的C1或C2覆盖工具

Ruby(1.9)有C1或C2代码覆盖的工具吗? SimpleCov仅支持C0 ,但也许还有另一种工具。 我知道这里有一个类似的问题 ,但是几年前,我希望有些事情发生了变化。

如何测试Rails ERB模板的代码覆盖率?

我只是为传统的Rails应用程序构建测试套件。 simplecov gem非常适合找到需要测试覆盖的应用程序的黑暗角落(或者可能完全未使用且可以删除)。 我只是通过在test/test_helper.rb的顶部包含以下内容来调用test/test_helper.rb : require ‘simplecov’ SimpleCov.start(‘rails’) 问题是,这不会检查嵌入在模板中的所有代码。 那里有各种各样的垃圾,我确信它可以被删除很多,但如果代码覆盖工具可以指向未使用的位,那将是非常好的。 使用Ruby 1.9的Coverage库进行的一些实验让我相信,只有模板以某种方式预编译为Ruby代码,保存在Ruby源文件中,然后load ed或者require d,而不是加载使用eval直接编译模板。 或者,可能会破坏ERB在编译过程中向每个模板的每一行添加日志记录语句。 有没有人有任何其他想法如何衡量ERB模板的代码覆盖率? 你知道一个可以做到这一点的已经制造的工具吗? (或者我必须成为构建和发布它的人吗?)