Ruby-2.0.0p247 ActiveRecord-4.0.1 Cucumber 1.3.10 Aruba-0.5.3 SimpleCove-0.8.2
我们在一个 NON-RAILS 项目中使用 Cucumber 和 Aruba,该项目仍然使用 ActiveRecord。我们的黄瓜功能在进程内和进程外运行代码。进程外代码通过 bin 中的启动存根使用与生产中相同的加载程序序列执行:
#!/usr/bin/env ruby
require 'bundler/setup'
Bundler.require
require 'pathname'
my_dir = Pathname.new(
File.join( File.dirname(
__FILE__ ), '../', 'lib/' ) ).realpath.to_s + '/'
require my_dir + File.basename( __FILE__ )
HllThForexRssFetch::Main.new( ARGV ).execute
#EOF
我们的 features/support/env.rb 文件包含以下内容:
$ cat features/support/env.rb
# Must load and start simplecov before any application code
require 'simplecov'
SimpleCov.start do
add_filter "/features/"
add_filter "/libexec"
add_filter "/lib/hll_active_record/"
add_filter "/test/"
add_filter "/tmp/"
end
SimpleCov.command_name( "Cucumber Features" )
# Do not use cucumber/rails in standalone projects
#require 'cucumber/rails'
. . .
当我们的步骤定义通过 aruba 的运行命令调用外部 bin/文件时,步骤定义正常工作并且测试按预期完成,但代码覆盖率没有与运行的其余部分合并。我正在寻找的是有关如何设置 simplecov 以报告进程外测试的代码覆盖率以及黄瓜直接在进程内运行的部分的说明。
如何做到这一点?