设置rake任务以运行特定的Cucumber方案

时间:2011-08-24 14:57:08

标签: cucumber rake jruby rake-task

我正在尝试设置一个rake任务来运行带有特定标记的任何黄瓜场景(@server)。 我在项目目录的根目录中有一个rakefile,代码如下:

require 'cucumber/rake/task'

desc "Get SQL response and store it in a file"
Cucumber::Rake::Task.new(:server, 'Execute SQL (@server only)') do |t|
    t.cucumber_opts = [ '--tags', '@server' ]
end

task :default => :server

使用项目根目录中的默认配置文件的cucumber.yml文件

default: --profile server_cache
server_cache: --format pretty --tags @server

我在项目文件夹中尝试在命令提示符下运行“jruby -S rake”,我收到此错误:

“'jruby.bat.exe'无法识别为内部或外部命令,可运行程序或批处理文件”

我是否试图以错误的方式运行任务?

我在windows xp上使用jruby 1.5.6,版本1.8。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我会将此作为评论发布,但您的问题与rake无关,以及与gem安装有关的一切

我很好奇,您使用的是RubyMine吗?我之前遇到过这个问题,当时我使用RubyMine的安装程序为jruby安装了gems。无论出于何种原因,它会在安装宝石期间对批处理文件进行清理。

例如,您的rake.bat文件应如下所示:

@ECHO OFF
@"%~dp0jruby.exe" -S rake %*

如果没有,它可能已经由您的gem安装过程更新。

你正在正确地执行命令,但是当它应该只调用jruby.exe时,某些东西已经拉动rake.bat(或者cucumber.bat,也检查它)以包含'jruby.bat.exe'的执行作为参考,我的cucumber.bat看起来像这样:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"jruby.exe" "C:/<path to jruby>/bin/cucumber" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"jruby.exe" "%~dpn0" %*