phi*_*lee 4 selenium code-coverage ruby-on-rails
我们有一套硒测试。我想使用SimpleCov涵盖那些测试的服务器端内容。首先,这是一种常见的方法吗?我在SimpleCov / Selenium上找不到任何东西。也许SimpleCov通常用于单元/功能测试而不是集成?
当前的Selenium设置需要启动rails服务器,而不是进行一套Selenium测试。我需要SimpleCov在rails服务器上运行,然后在套件完成后退出。
任何帮助,不胜感激!
simplecov作者在这里。每当您启动SimpleCov时,它将覆盖率分析应用于当前正在运行的过程。因此,您需要在Rails服务器进程中启动SimpleCov。我建议将SimpleCov设置作为条件添加到Rails应用程序的config / boot.rb(在最顶部),如下所示:
# config/boot.rb
if ENV["SELENIUM"]
require 'simplecov'
SimpleCov.start 'rails'
end
Run Code Online (Sandbox Code Playgroud)
在启动Rails测试服务器之前,请设置该环境变量。一旦测试服务器关闭,您现在应该会收到一份覆盖率报告。如果要将其移动到另一个目录,请检查配置选项,以免干扰常规(单位/功能)覆盖率报告。
我不确定boot.rb是否正确。事实是,需要先加载SimpleCov,然后才需要应用中的其他任何内容,否则它将无法跟踪这些文件的覆盖范围。您可能需要试验或查看rails引导过程才能找到该位置,但是由于Bundler设置是boot.rb的一部分(如果我没记错的话...),因此将上述配置放在Bundler.setup之上没事的。
基本上,使用类似的设置,您甚至可以通过在服务器进程中启动simplecov,单击并退出服务器来获得基于本地手动基于浏览器的测试的代码覆盖率,例如,如果您想知道某个动作在应用程序的哪个部分真的很感动。