这是我的Controller:classMyController@list}format.json{render:json=>@list}endendendend...它所基于的助手:moduleMyHelperdefget_list_from_params(param=:id,&on_success)raw_id=params[param]beginid=Integer(raw_id)rescuerender:template=>"invalid_id",:locals=>{:id=>raw_id}elseyieldMyList.new(id)endendend...和我的功能测试(
我编写了一个Sinatra应用程序(网站),我想收集网站代码的代码覆盖率信息。我是Ruby的新手,但Google告诉我rcov是一个很好的代码覆盖工具。不幸的是,我在网上可以找到的所有信息只显示了如何获取有关测试用例的代码覆盖率信息-我想要有关我的站点本身的代码覆盖率信息。我想要分析的特定站点文件位于“sdk”和“sdk/vendor”目录中,因此我通常使用“rubysite.rb”运行我的站点的地方我改为尝试以下操作:rcov-Isdk-Isdk/vendorsite.rb它显示了Sinatra启动文本,但随后立即退出,而不是像我的Sinatra应用程序通常那样等待网络请求。有人能告
在rcov中,有没有办法找到跟踪哪些测试方法覆盖了给定的代码行(在您正在测试的目标代码中)? 最佳答案 我很确定,rcov不支持此功能。由于CoverageInfo的文档Class建议,rcov只跟踪给定的linen是否被执行,而不是在什么上下文中执行。 关于ruby-在rcov中,有没有办法找到哪个测试方法遍历了被测试的给定代码行?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions
前言我刚刚开始接触Ruby,不仅尝试学习语言,还尝试学习一些开发策略。作为初学者,我专注于测试和行为驱动开发。(是的,我两者都做是为了比较)我正在使用的小型软件项目单元测试(TDD)cucumber(BDD)Rspec(TDD和BDD)在不同的地方,我遇到了RCov作为一种工具,它告诉我我实际测试了多少实际代码。我在我的Rakefile中设置了以下RakeTask,用于单元测试的协方差分析:desc"RunRCovtogetcoverageofUnitTests"Rcov::RcovTask.new(:rcov_units)do|t|t.pattern='tests/**/tc_*.r
我正在尝试对我用Ruby编写的一段调用File.open的代码进行单元测试。为了模拟它,我将File.open修改为以下内容:classFiledefself.open(name,&block)ifname.include?("retval")return"0\n"elsereturn"1\n"endendend问题是我正在使用rcov来运行整个过程,因为它使用File.open来编写代码覆盖率信息,它获取的是monkeypatched版本而不是真实版本。我怎样才能取消monkeypatch这个方法以将它恢复到原来的方法?我试过乱用alias,但到目前为止无济于事。
我当前的RubyonRails项目通过rcov(具体来说,relevancercov)进行测试,我们有相当高的标准(如果我们的代码覆盖率我们使用下面的命令来测试:rcov_cmd="rcov--rails--text-summary\--include#{included_dirs}\--exclude#{excluded_dirs}\--aggregate#{coverage_dir}/coverage.data\--output#{coverage_dir}\今天我在rcov报告中发现了一些注册为绿色(已运行)的代码。Homever,我可以证明这段代码没有运行(我在函数的开头引发异
我在从我的rails路由自动生成的一组测试中使用rcov来收集有关死代码(应用程序中从未调用的代码)的信息。这个设置已经为Controller、模型、助手和库代码生成了启发性的结果。不幸的是,rcov不跟踪erb模板中的代码覆盖率,这是有道理的,因为erb模板在正常的执行概念上是一个非常具有挑战性的延伸。Rails本身可以生成关于在模板中引发异常的位置等的良好报告,所以我觉得这是可以收集的数据。我目前正在尝试在rcov中找到我可以Hook的点,但是系统的Ouroboros性质使得很难清楚地看到正在发生的事情。我还怀疑有必要对ERB进行一些猴子修补。如果您对方法或解决方案有任何想法,我将
我今天用rcov+Rails3碰壁了。我正在使用Ruby1.9.2-preview3开发我的Rails3应用程序。rcov和relevance-rcov还不适用于Ruby1.9.2。我也找不到任何rcov的分支。这没什么大不了的,因为我可以使用rvm--default1.8.7;轻松切换到Ruby1.8.7;rake测试:覆盖率。然后今天我将我的应用程序从beta4升级到了Rails3.0.0-rc。该版本需要linecache19。问题是linecache19不能用1.8.7编译,只能用1.9.2-preview3,无论我如何配置它的--include-*参数,它都看不到我的vm_c
当为Rails3应用程序运行rakespec:rcov时,spec/目录中的文件被包含在覆盖率统计中,但我不想他们是。我只想要我的实际应用程序的覆盖率统计信息。在旧版本的RSpec中,可以使用spec/rcov.opts文件中的--exclude"spec/*"行对其进行自定义,但它似乎该文件不再被Rspec2读取。我尝试创建一个.rcov文件,因为spec/spec.opts更改为.rspec,但也没有人阅读。我找到了一些关于如何在定义rake任务时执行此操作的文档,但我宁愿不覆盖提供的rake任务——看起来这一定是其他人也尝试过的事情。如何自定义不包括在覆盖率统计中的文件?作为引用
当rcov生成报告时,它会显示每个文件的“总覆盖率”和“代码覆盖率”。这两个指标有什么区别? 最佳答案 来自http://www.rubydoc.info/github/relevance/rcov/master/Rcov/FileStatisticstotal_coverage是:Totalcoveragerateifcommentsarealsoconsidered"executable",givenasafractioncode_coverage是:Codecoveragerate:fractionoflinesofcodee