Ruby on rails 在RubyonRails开发中使用Cucumber传递autospec中的选项

Ruby on rails 在RubyonRails开发中使用Cucumber传递autospec中的选项,ruby-on-rails,ruby,rspec,cucumber,autotest,Ruby On Rails,Ruby,Rspec,Cucumber,Autotest,我总是运行autospec来同时运行features和RSpec,但是在本地计算机上运行所有的功能通常很耗时。我会在提交代码之前运行每个特性 我想在autospec命令中传递参数autospec显然不直接接受参数。以下是autospec-h的输出: autotest [options] options: -h -help You're looking at it. -v Be verbose. Prints fil

我总是运行
autospec
来同时运行features和RSpec,但是在本地计算机上运行所有的功能通常很耗时。我会在提交代码之前运行每个特性

我想在
autospec
命令中传递参数
autospec
显然不直接接受参数。以下是
autospec-h
的输出:

    autotest [options]

options:
    -h
    -help       You're looking at it.

    -v      Be verbose.
            Prints files that autotest doesn't know how to map to
            tests.

    -q      Be more quiet.

    -f      Fast start.
            Doesn't initially run tests at start.
我在
config
目录中确实有一个
cucumber.yml
。我在Rails根目录中还有
rerun.txt
cucumber-h
为我提供了很多关于参数的信息

如何针对标记为
@wip
的功能运行
autospec
?我想我可以使用
config/cumber.yml
。有配置文件定义。我可以运行
cucumber-p-wip
来只运行@wip标记的特性,但我想用
autospec
来实现这一点


我希望您能给我一些使用许多规范和功能文件的提示。

好吧,有一个提示是,您可以在不运行功能的情况下运行规范,方法是将AUTOFEATURE设置为false:

export AUTOFEATURE=false

这样,您可以运行您的规格,直到它们全部为绿色,然后将AUTOFEATURE设置为true并运行您的功能,当它们全部通过时,您可以进行重构。

我不使用autotest或autospec运行功能,而是定期手动运行它们。Cucumber特性没有rspec测试那么智能,将运行最小的更改。TDD很好,但它应该加快速度,而不是减慢速度

因此,我运行:

./spec/autospec
在一个窗口,和

cucumber --tags @wip

如果您使用的是OSX,您可以尝试在文件更改时使用gem启动cucumber:

$ kicker -e "cucumber -p wip" .

不幸的是,我不知道是否有类似的程序在windows/linux上执行任意文件监视

如果在
cucumber.yml
文件中有
autotest
配置文件,autospec将使用该配置文件而不是默认配置文件

我正在使用类似的东西来运行
@wip
任务:

autotest: --format pretty --tags @wip:3 --wip features
这基本上是说:“运行前三个带有@wip标记的场景”

如果您希望在运行整个套件时(通常在红色=>绿色转换之后)有与autospec不同的行为,您还可以添加一个
autotest all
配置文件。下面是一个粗略的示例,让您开始学习:

autotest-all: --require features --format pretty

我使用的是OS X。看起来很有前途。我喜欢这不仅仅适用于wip功能。我将它与
--tags@mytag
开关一起使用,以挑出场景的特定子集。