Ruby Покрытие кода: SimpleCov + MiniTest? - PullRequest
0 голосов
/ 28 апреля 2020

Я интегрировал SimpleCov в свой проект Ruby (простой проект Ruby Gem, без фреймворка), который использует MiniTest для тестирования.

Вот test_helper.rb:

  require 'simplecov'
  SimpleCov.start

  require 'minitest/autorun'

Все мои тестовые файлы имеют require 'test_helper.rb'.

Запуск всех тестов (либо из RubyMine, либо с bundle exec rake) работает, и создается отчет HTML.

Однако он содержит покрытие для ... одного из моих тестовых классов? Я ожидаю увидеть отчет о покрытии всех классов, вызываемых тестами (которые находятся в стандартной папке /lib).

Вот сгенерированный отчет:

https://user-images.githubusercontent.com/6305156/80513538-df68d080-8987-11ea-9858-43a3a2673e31.png

Ссылка на проект: https://github.com/ruby-ee/ruby-stream-api/tree/10 Это простой, едва начатый, Ruby Gem.

Любая помощь очень ценится. Спасибо!

1 Ответ

0 голосов
/ 28 апреля 2020

Мне удалось это исправить. В документации SimpleCov указано, что SimpleCov должен быть обязательным и SimpleCov.start должен быть выдан до того, как потребуется какой-либо код приложения!

У меня была директива require в моем *.gemfile, поэтому мне пришлось добавить

require 'simplecov'
SimpleCov.start do     # ommit test classes from the report
  add_filter 'test'
end

прямо здесь, вместо test_helper.rb.

...