2010-06-22 76 views
41

我之所以要单独运行它们,是因为我需要他们在我的Rake文件中单独设置的,因为,我的Java堆空间的占用,当我运行它们放在一起Ruby on Rails:黄瓜:我如何制作一个功能?

+0

Java堆空间?如果您使用Rake/Rails/Cucumber堆栈,Java如何计算? – 2010-06-22 23:13:56

+0

jruby上运行,我猜 – fakeleft 2011-08-10 10:01:42

+0

不直接。我正在使用一些图书馆以及使用jruby的黄瓜。我认为CapyBara是一个。 = \ – NullVoxPopuli 2011-08-10 18:04:34

回答

40

要直接回答这个问题,耙,你可以使用:

rake FEATURE=features/adding_products.feature cucumber 

Using Rake wiki页面建议不要使用耙任何东西,但一个CI服务器上,因为它是慢启动。只要用黄瓜命令行模式,即:

cucumber features/adding_products.feature 

,或者,如果你必须:

bundle exec cucumber features/adding_products.feature 
+4

对于新版本,你也可以这样做 - bundle exec cucumber features/adding_products.feature – 2013-07-11 18:42:57

0

如果使用cuke4duke可以从ant或maven单独运行。

manual指出您可以使用与黄瓜相同的选项。所以我希望你可以通过命令行运行要运行的功能的文件名。

0

您可以使用script/cucumber来执行单个文件。

假设你在你的项目的根目录下,你有一个特点文件夹:

./script/cucumber features/adding_products.feature 

编辑:在重新阅读你的问题后,你找谁做个别功能,或方案?

+0

对我来说,这个作品'cucumber -r features features/adding_products.feature' – sivabudh 2011-06-28 02:07:37

65

正确的方法是,如果你使用Rails 2使用cucumber可执行文件来运行它,或bundle exec cucumber如果您使用的是Rails 3(以及Bundler)。

要运行的特定功能:

[command] features/signing_in.feature 

若要从该特征的特定情形:

[command] features/signing_in.feature:6 

的行号可以是该特征内的任何线,但通常是在第一行。

如果运行rake cucumber:ok和一些场景中失败,在输出的底部,你会看到这样的事情:

cucumber features/sigining_in.feature:6 # Signing in via form 

可以三击该行并将其粘贴到你的终端只是运行场景。

+13

要运行一个场景,你也可以输入这个: 'cucumber --name“通过表单登录”' – Bastien 2011-03-09 13:42:20

+0

谢谢瑞安和巴斯蒂安。这应该是被接受的答案。 – 2015-09-14 17:23:43

36

耙子没有为我工作。 刚刚用bundle exec替换了rake,它就起作用了。下面是 是一个示例。

bundle exec cucumber features/users/signup。功能--require功能

+0

为我工作。谢谢 – 2011-10-23 15:32:41

+1

也为我工作。如果我省略 - 需要功能黄瓜未能确定步骤定义。 – 2013-05-18 06:54:54

+0

对,有同样的问题。替代显然是硬编码' - 需要功能'替换这行** config/cucumber.yml **'std_opts =“--format#{ENV ['CUCUMBER_FORMAT'] ||'pretty'}这行 - strict --tags〜@ wip“' with'std_opts =”--format#{ENV ['CUCUMBER_FORMAT'] ||'pretty'} --strict --tags〜@ wip --require features /“' 参见[这个问题](http:// stackoverflow。com/questions/6264030/rake-runs-all-my-cucumber-tests-fine-but-cucumber-doesnt-have-the-steps) – 2013-10-02 15:37:28

15

我不是当问题问肯定黄瓜的tag feature可用,但我更喜欢设置@active标签

@active 
    Feature .. 

@active 
    Scenario .. 

cucumber --tags @active 
11

我喜欢短命令$ cucumber -n

如果:

Feature: Manage Contents 
    In order to manage instances from custom content types 
    … 

则:如果您有多个黄瓜项目在大型企业是

$ cucumber -n "Manage Contents" 
+0

只有一个为我工作的宙斯 - 谢谢! – Houen 2015-04-17 10:42:05

+0

好的朋友,你是天才 – 2015-12-18 22:41:18

1

要运行一个单一功能的文件。

cucumber /project folder/features/featurefile.feature 

要运行特定情形:

cucumber /project folder/features/featurefile.feature:10 

其中10是场景的线。

如果使用捆绑,

bundle exec cucumber /project folder/features/featurefile.feature