我的应用程序的coverband gem

时间:2013-12-27 05:39:52

标签: ruby-on-rails ruby rubygems gem

尝试使用coverband gem,它将显示我的应用程序中涵盖的代码。我按照此链接https://github.com/danmayer/coverband的命令,并使用“rake test”生成覆盖。添加了

require 'simplecov'
SimpleCov.start 

在simplecov gem文档中测试/ test_helper.rb和config / application.rb。我的问题是如何获得整个点击的输出并添加我在我的应用程序上的输出?现在我最终得到初始化器和配置的输出,但我需要覆盖控制器,模型和视图的代码。 有人会帮忙吗?

3 个答案:

答案 0 :(得分:5)

嘿,我是Coverband的作者。我想帮助确保人们了解Coverband不适用于测试代码覆盖率。为此,您应该只看看Simplecov,它拥有您所需要的一切。 Coverband,提供运行时代码覆盖,这对于查看在生产服务器上执行的代码非常有用。这有助于查找正在维护但未被任何实际用户使用的功能和代码。 Simplecov的用例非常不同。 Coverband使用Simplecov输出格式化器,但除此之外,他们不会共享其他代码或相同的目标。

希望有所帮助。

答案 1 :(得分:0)

您可以尝试将Cucumber与Web驱动程序一起使用。这应该会在覆盖率报告中获得点击次数。如果您需要进行Javascript评估,则需要使用Selenium。

答案 2 :(得分:0)

我设法得到一个正常工作的规范/ spec_helper.rb配置,只需使用$ rspec规范/命令就可以正确执行SimpleCov,这要归功于Github问题的评论,该问题将我发送到此博客条目及其示例spec / spec_helper。 RB。其中包含的所有原因都包含在(非常详细的!)博客条目中。将SampleApp替换为您的应用程序名称

Spork.prefork do
  unless ENV['DRB']
    require 'simplecov'
    SimpleCov.start 'rails'
  end

  require 'rails/application'
  require Rails.root.join("config/application")

  ENV["RAILS_ENV"] ||= 'test'
  require 'rspec/rails'
  require 'rspec/autorun'

  RSpec.configure do |config|
    config.mock_with :rspec
    config.fixture_path = "#{::Rails.root}/spec/fixtures"
    config.use_transactional_fixtures = false

    config.before :each do
      if Capybara.current_driver == :rack_test
        DatabaseCleaner.strategy = :transaction
      else
        DatabaseCleaner.strategy = :truncation
      end
      DatabaseCleaner.start
    end

    config.after do
      DatabaseCleaner.clean
    end

    config.infer_base_class_for_anonymous_controllers = false
  end
end