Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我可以在webrick中运行SimpleCov吗?_Ruby On Rails_Ruby_Selenium_Code Coverage - Fatal编程技术网

Ruby on rails 我可以在webrick中运行SimpleCov吗?

Ruby on rails 我可以在webrick中运行SimpleCov吗?,ruby-on-rails,ruby,selenium,code-coverage,Ruby On Rails,Ruby,Selenium,Code Coverage,我有一个rails应用程序和一个测试人员,他们正在开发一个用Java编写的基于Selenium的外部测试系统。我们想知道他测试套件的当前代码覆盖率,所以我想在my:development env中使用SimpleCov,然后让他将他的测试套件指向它 我尝试将SimpleCov行放在env/development.rb的顶部,但它只创建了./coverage目录,实际上没有为我在应用程序中尝试的任何单击更新覆盖率报告。我想如果我离开webrick,它可能会写出来,但仍然没有 SimpleCov能做

我有一个rails应用程序和一个测试人员,他们正在开发一个用Java编写的基于Selenium的外部测试系统。我们想知道他测试套件的当前代码覆盖率,所以我想在my:development env中使用SimpleCov,然后让他将他的测试套件指向它

我尝试将SimpleCov行放在env/development.rb的顶部,但它只创建了./coverage目录,实际上没有为我在应用程序中尝试的任何单击更新覆盖率报告。我想如果我离开webrick,它可能会写出来,但仍然没有


SimpleCov能做到这一点吗?(或者Ruby中的任何其他覆盖工具?)如何?

我通过以下操作在Rails2下实现了这一点(但是Rails3不应该有太大的不同):

config/environments/development.rb的顶部添加以下行:

require 'simplecov'

# clean the existing coverage directory before writing the new results.
Dir.foreach("coverage") do |file|
  next if [".",".."].include?(file)
  FileUtils.rm_rf(File.join("coverage",file), :verbose=>true)
end

SimpleCov.start 'rails' do
  add_filter "/vendor/"
end
现在,将一个方便的控制器方法添加到您的一个控制器中(我将其添加到管理控制器中,因此我知道不会意外调用它,但任何操作都可以,因为您保护它只供开发使用):

注意:此url仅在开发中有效/存在

瞧!覆盖率报告将写入rails目录中的
coverage/**
。您可以通过在浏览器中加载
coverage/index.html
来查看它

正当理由 虽然SimpleCov的正常使用是为了进行单元和功能测试,但增加了评估外部集成测试的能力,这为QE测试人员提供了宝贵的反馈,说明他们的测试策略在目标rails应用程序中实际测试了什么


对于大多数Rails应用程序来说,这可能是一个微不足道的区别,但是当应用程序作为“传递”运行时,对于来自动态混合到应用程序模型中的其他应用程序(例如,仪表板或控制台应用程序)的大量数据,这是非常有用的。在这类应用程序中,rails测试人员可能认为他们正在测试应用程序的排列,而实际上他们正在测试底层数据(例如网络集群)的排列。在这种情况下,代码覆盖率为正在测试的内容提供了额外的可视性级别。

我通过以下操作在Rails2下实现了这一点(但Rails3不应该有太大的不同):

config/environments/development.rb的顶部添加以下行:

require 'simplecov'

# clean the existing coverage directory before writing the new results.
Dir.foreach("coverage") do |file|
  next if [".",".."].include?(file)
  FileUtils.rm_rf(File.join("coverage",file), :verbose=>true)
end

SimpleCov.start 'rails' do
  add_filter "/vendor/"
end
现在,将一个方便的控制器方法添加到您的一个控制器中(我将其添加到管理控制器中,因此我知道不会意外调用它,但任何操作都可以,因为您保护它只供开发使用):

注意:此url仅在开发中有效/存在

瞧!覆盖率报告将写入rails目录中的
coverage/**
。您可以通过在浏览器中加载
coverage/index.html
来查看它

正当理由 虽然SimpleCov的正常使用是为了进行单元和功能测试,但增加了评估外部集成测试的能力,这为QE测试人员提供了宝贵的反馈,说明他们的测试策略在目标rails应用程序中实际测试了什么

对于大多数Rails应用程序来说,这可能是一个微不足道的区别,但是当应用程序作为“传递”运行时,对于来自动态混合到应用程序模型中的其他应用程序(例如,仪表板或控制台应用程序)的大量数据,这是非常有用的。在这类应用程序中,rails测试人员可能认为他们正在测试应用程序的排列,而实际上他们正在测试底层数据(例如网络集群)的排列。在这种情况下,代码覆盖率为测试内容提供了额外的可见性

http://localhost:3000/admin/debug/coverage