标签: simplecov

简单的cov gem缺少Rails中未经测试的文件

simple_cov在Rails应用程序中使用gem,我们可以在报告中包含我们未测试的文件吗?

  • 如果有,怎么样?

  • 如果不是,那些文件应该计入覆盖百分比,对吧?

ruby-on-rails simplecov

28
推荐指数
3
解决办法
4672
查看次数

SimpleCov计算用户模型的0%覆盖率

我决定尝试使用simplecov gem.我认为这是很酷的工具,但我有一个问题:

我有模型用户,我有user_spec.rb,其中包含测试用例,但simplecov显示该模型的0%覆盖率.它显示其他型号的100%覆盖率,这是真的.我不明白User模型有什么问题.

class User < ActiveRecord::Base

  extend Enumerize

  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  STATUS_ACTIVE = :active
  STATUS_BANNED = :banned

  enumerize :status, in: [STATUS_ACTIVE, STATUS_BANNED], default: STATUS_ACTIVE

  with_options inverse_of: :user, dependent: :destroy do
    has_one :profile
    has_many :articles
  end

  before_create :build_default_profile

  private

  def build_default_profile
    build_profile
  end

end
Run Code Online (Sandbox Code Playgroud)

user_spec.rb

 require 'rails_helper'

    RSpec.describe User, type: :model do

      describe '#validations' do
        it { should have_one(:profile).dependent(:destroy) }

        it …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails simplecov

13
推荐指数
3
解决办法
3193
查看次数

有没有办法将覆盖率报告添加到gitlab?

我知道gitlab支持Jenkins CI,但我需要的远不止于此.

我有一个Rails应用程序,并使用simplecov从测试中获得覆盖.它通过运行rake任务在目录中生成HTML输出.我想通过gitlab看到当前的报道.有没有一种简单的方法将此报告与gitlab集成?

gitlab simplecov

12
推荐指数
3
解决办法
7041
查看次数

Ruby on Rails使用simplecov测试覆盖率


我想分析代码的测试覆盖率,因此,安装了simplecov gem.

我们的测试环境有两个单独的项目:REST API测试(Java + Rest-Assured)和Web UI测试(Java-Selenium).
如您所见,我们在rails app中没有单元测试,我们正在使用外部项目进行测试.

我按照教程中的描述配置了simplecov gem,并将其放在rails脚本中:

require 'simplecov'
SimpleCov.start 'rails'
puts "require simplecov"
Run Code Online (Sandbox Code Playgroud)

加载应用程序时,我看到我打印的字符串.

我运行了两个自动化测试项目,在rails日志中看到了他们的打印输出,但是我没有看到控制器/模型的任何覆盖,我看到一些gems和rails的初始化文件的小百分比.

我搜索网络,并尝试将代码短语放在boot.rb甚至puma.rb中,它返回相同的结果.



有任何想法吗?

编辑

没有任何帮助所有的评论,但我想出了一些非常有趣的东西,在所有情况下,我只看到标记为测试的方法的名称,而不是内容(在控制器中).
我试图将simplecov启动短语放在bin/rails,puma.rb,config.ru,environment.rb中,所有这些都没有给出所需的代码覆盖率结果.

ruby automated-tests ruby-on-rails simplecov

10
推荐指数
1
解决办法
835
查看次数

从Simplecov报告中排除供应商文件

我只想排除供应商宝石与覆盖率报告一起显示,该怎么做?

以下是我的报道报告的样子:

报告

rspec code-coverage ruby-on-rails ruby-on-rails-4 simplecov

8
推荐指数
2
解决办法
1215
查看次数

如何配置SimpleCov以忽略#inspect方法

我的覆盖率报告不是100%,因为我的类中有几个#inspect方法,我用它们进行调试.有没有办法配置SimpleCov忽略所有检查方法?

simplecov

7
推荐指数
1
解决办法
1289
查看次数

如何使用 RSpec (无轨)将 simplecov 与 Ruby gem 集成?

当使用 RSpec 将 simplecov 添加到 Rails 项目时,我会将其放在rails_helper.rb 的最顶部

require 'simplecov'

SimpleCov.start 'rails' do
  add_filter '/spec/'     

  add_group 'Controllers', 'app/controllers'
  add_group 'Models', 'app/models'
end
Run Code Online (Sandbox Code Playgroud)

让 simplecov 记录普通 ruby​​ gem 的代码覆盖率所需的预期位置和代码是什么?

ruby rspec simplecov

6
推荐指数
1
解决办法
1458
查看次数

simplecov报告0.0%覆盖

我正在开发一个小插件并包含simplecov.

在我的gem文件中,我有一行:

gem 'simplecov', :require => false, :group => :test
Run Code Online (Sandbox Code Playgroud)

在我的测试文件中,我将该行放在文件require "projectname/devuntil/rspec/spec_helper" 的最顶部.

在我的spec_helper.rb文件中,我在文件顶部添加了simplecov

if ENV['COVERAGE']
  require 'simplecov'
  require 'coveralls'

  puts "require simplecov and coveralls"
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
    SimpleCov::Formatter::HTMLFormatter,
    Coveralls::SimpleCov::Formatter
  ]

  SimpleCov.start do
    add_filter 'spec/'
    add_filter 'vendor/'
    puts "Start simple coverage"
  end
end
Run Code Online (Sandbox Code Playgroud)

当我尝试使用命令运行测试时,COVERAGE=true bundle exec rspec它显示:

[root@node1 logstash-input-imap]# COVERAGE=true bundle exec rspec
Coverage may be inaccurate; set the "--debug" command line option, or do JRUBY_OPTS="--debug" or set the "debug.fullTrace=true" option in your .jrubyrc
require simplecov and …
Run Code Online (Sandbox Code Playgroud)

ruby rspec simplecov

6
推荐指数
1
解决办法
501
查看次数

在声明"33.08%覆盖12.13次点击/线"时命中/线是什么意思?

最近我正在使用rails项目,并使用simplecov生成代码覆盖率报告,我在下面得到了一个很好的报告.我知道这是一个简单的问题(我google了很多次但没有得到任何正确的解释)

任何人都可以解释点击/线的含义.

还可以说我有一个文件test.rb(100行代码),它没有被任何时候点击,现在让我们说一些test_script已经命中了一些文件test.rb,所以覆盖率会由

 total no.of lines hit / total lines of code , (All files) 
                                      OR
lines hit / total lines of code (file1) .+.+....lines hit/ total line of code (file n) / total number of file count
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

testing code-coverage simplecov

5
推荐指数
1
解决办法
657
查看次数

如何在运行parallel_test时合并CircleCI中的多个simplecov目录?

我有一个rails应用程序,在circleci中使用rspec运行parallel_test

在互联网上环顾四周,我把它添加到我的spec_helper.rb文件的开头:

if ENV['COVERAGE']
  require 'simplecov'
  # on circleci change the output dir to the artifacts
  if ENV['CIRCLE_ARTIFACTS']
    dir = File.join("..", "..", "..", ENV['CIRCLE_ARTIFACTS'], "coverage")
    SimpleCov.coverage_dir(dir)
    SimpleCov.merge_timeout 3600
    SimpleCov.command_name "rspec_#{Process.pid.to_s}#{ENV['TEST_ENV_NUMBER']}"
  end
  SimpleCov.start 'rails'
end
Run Code Online (Sandbox Code Playgroud)

问题是,因此我为每个circleci实例获得了一个不同的文件夹:

在此输入图像描述

我究竟做错了什么 ?

rspec ruby-on-rails parallel-testing circleci simplecov

5
推荐指数
1
解决办法
1544
查看次数