Показанный показатель охвата, вероятно, является точным. Модули Ruby, определения классов и методов - это код, поэтому просто загрузка модулей и классов при запуске simplecov покрывает существенный процент кода. Один сценарий Cucumber, скорее всего, относится ко многим из ваших классов и поэтому вызывает этот эффект. Ссылки на ваш код в рейк-задачах и других местах также увеличат этот «фоновый» охват. Вы можете видеть, насколько это верно, глядя на ваш отчет о покрытии и наблюдая, что линии class
и module
и def
покрыты, в то время как тела определений нет.
Не боритесь с ним; просто работайте с ним. Не пытайтесь запускать simplecov после загрузки кода, потому что simplecov по-прежнему будет включать определения класса, класса и метода в знаменателе цифры покрытия кода, что было бы еще более раздражающим.
Фактически, вы можете даже хотеть eager load all of your code so that simplecov shows you the lack of coverage in files that your tests wouldn't cause to be loaded otherwise. (simplecov - это не файлы инструментов, которые никогда не загружаются.) Это действительно даст вам точные измерения. Я должен был прекратить это делать в своем последнем проекте, потому что это мешало Coveralls таким образом, что я забыл, но это может быть не проблемой для вас.
Я не думаю, что это подходящее место для этого вопроса. – MZaragoza
Просмотрите, что покрыто, чтобы увидеть, если что-то не так с этим. Если есть ошибка, перейдите к simplecov (https://github.com/colszowka/simplecov/issues) и отправьте вопрос. –