ruby - 使用 JRuby 进行 RCov

标签 ruby unit-testing rspec tdd rcov

我有一个项目想要获得代码覆盖率。这只是一个标准的 JRuby 项目,不在 Rails 上,我想知道如何让 RCov 工作。我已经尝试了很长时间以获得结果,但我只是不知道发生了什么。我得到一个覆盖文件夹来显示,但所有文件要么在需要时出现加载错误,要么加载的文件根本没有说它们已经过测试(我知道在一种情况下这是胡说八道,因为我制定了测试规范为了它)。谁能向我解释如何让 RCov 工作或者为什么我收到附加错误?我不明白你应该如何/为什么对包含的库执行 -I 或这样做的意义是什么。从我到目前为止所做的事情来看,我只是从我的主 appcode 目录运行 rcov spec/.rb ,并生成我的覆盖文件夹和: rcov 规范/.rb /home/ben/.rvm/gems/jruby-1.6.8/gems/rcov-0.9.11-java/lib/rcov/Differential_analyzer.rb:31 警告:跟踪(例如 set_trace_func)不会捕获所有事件,除非 --调试标志 NoMethodError:未定义 main:Object 的方法“描述” (根)位于 ./spec/ncrf_spec.rb:3

最佳答案

RCov严格限制为Matz's reference implemenation Ruby (MRI) 1.8.x,甚至不适用于 MRI 1.9.x。

SimpleCov 是新的方法,因为它使用新的 Ruby Coverage API 。 JRuby 一度不支持该 API,或者至少不支持在生产中使用。 original issue on SimpleCov's bugtracker没有明确说明它现在可以工作。然而,the issue they files in the JRuby tracker关于此 Ruby Coverage API 无法正常工作表明此问题现已解决。

我想您应该尝试一下最新版本的 JRuby 和 SimpleCov。

关于另一个主题:

Ruby 的 -I 标志将目录添加到 $LOAD_PATH 数组中,该数组定义了当您尝试执行以下操作时搜索 .rb 文件的位置:使用 require 加载它们。从 Ruby 1.9.x 开始,文件只能在 $LOAD_PATH 中的目录之一中找到,并且不再相对于 Ruby 进程的当前工作目录找到。

关于ruby - 使用 JRuby 进行 RCov,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320000/

相关文章:

ruby-on-rails - 在 Rails 中向 Integer 类添加方法的最佳位置在哪里?

java - 如何在Spring boot中模拟本地RestTemplate来解决连接被拒绝的问题?

matlab - 包内的`localfunctions`

ruby-on-rails - 如何使用 rspec stub 访问器

java - 规范化 JSON 文件

ruby - 使用方法调用将 XML 从 Nokogiri xml 构建器 block 插入到另一个构建器 block 中

ruby - 波浪号大于 (~>) 在 Ruby gem 依赖项中意味着什么?

visual-studio-2008 - Visual Studio 2008 测试 View 面板未显示所有测试

ruby-on-rails - 为什么我的 rspec 测试失败?

ruby - "wrong number of arguments"错误的 RSpec 测试在某些环境中失败