如何检测未经测试的 ruby 文件?
How to detect untested ruby files?
我最近开始开发大型 Rails 应用程序。 Simplecov 表示测试覆盖率超过 90%。很好。
然而,我时不时地发现测试套件甚至没有加载的文件。这些文件实际上在生产中使用,但出于某种原因,没有人足够关心甚至编写关于它们的最简单的测试。 因此,它们未计入覆盖率指标。
这让我很担心,因为有未知数量的代码可能会在我们不注意的情况下中断生产。
只有我有这个问题吗?有一个众所周知的解决方案吗? 我们能否获得未加载文件的覆盖率指标?
我最终将此添加到我的 environments/test.rb
:
config.eager_load = true
config.eager_load_paths += ["#{config.root}/lib"]
但是添加 lib/
可能会带来不利影响,例如加载生成器等。 This post 很好地解释了每种方法的优缺点。
贡献者为此添加了新的配置选项track_files
。对于 rails 项目,值可能如下所示
track_files '{app,lib}/**/*.rb'
我最近开始开发大型 Rails 应用程序。 Simplecov 表示测试覆盖率超过 90%。很好。
然而,我时不时地发现测试套件甚至没有加载的文件。这些文件实际上在生产中使用,但出于某种原因,没有人足够关心甚至编写关于它们的最简单的测试。 因此,它们未计入覆盖率指标。
这让我很担心,因为有未知数量的代码可能会在我们不注意的情况下中断生产。
只有我有这个问题吗?有一个众所周知的解决方案吗? 我们能否获得未加载文件的覆盖率指标?
我最终将此添加到我的 environments/test.rb
:
config.eager_load = true
config.eager_load_paths += ["#{config.root}/lib"]
但是添加 lib/
可能会带来不利影响,例如加载生成器等。 This post 很好地解释了每种方法的优缺点。
贡献者为此添加了新的配置选项track_files
。对于 rails 项目,值可能如下所示
track_files '{app,lib}/**/*.rb'