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

时间:2010-01-12 11:00:50

标签: ruby-on-rails ruby rspec cucumber autotest

我总是运行autospec同时运行功能和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.

我在cucumber.yml目录中有一个config。我在Rails根目录中也有rerun.txtcucumber -h给了我很多关于论据的信息。

如何针对标记为autospec的功能运行@wip?我想我可以利用config/cucumber.yml。有个人资料定义。我可以运行cucumber -p wip仅运行@ wip-tagged功能,但我想用autospec执行此操作。

我很感激使用许多规范和功能文件的任何提示。

4 个答案:

答案 0 :(得分:3)

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

$ kicker -e "cucumber -p wip" .

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

答案 1 :(得分:1)

如果您的autotest文件中有cucumber.yml个人资料,则autospec将使用该个人而非默认个人资料。

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

autotest: --format pretty --tags @wip:3 --wip features

这基本上说:“运行用@wip标记的前三个场景。”

如果您在运行整个套件时想要与autospec不同的行为(通常在红色=>绿色转换之后),您还可以添加autotest-all个人资料。这是一个让你入门的粗略例子:

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

答案 2 :(得分:0)

嗯,一个提示是,您可以通过将AUTOFEATURE设置为false来运行规范而不运行功能:

export AUTOFEATURE=false

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

答案 3 :(得分:0)

我没有使用autotest或autospec运行功能,而是定期手动运行它们。黄瓜的功能并不像rspec测试那样智能,并且可以进行最小的更改。 TDD一切都很好,但它应该加快速度,而不是减慢速度。

因此,我跑:

./spec/autospec

在一个窗口中,

cucumber --tags @wip