当前位置:  开发笔记 > 编程语言 > 正文

如何在RSpec中运行单个测试/规范文件?

如何解决《如何在RSpec中运行单个测试/规范文件?》经验,为你挑选了10个好方法。

我希望能够运行单个spec文件的测试 - 例如,我正在编辑的一个文件. rake spec执行所有规格.我的项目不是Rails项目,所以rake spec:doc不起作用.

不知道这是否重要,但这是我的目录结构.

./Rakefile
./lib
./lib/cushion.rb
./lib/cushion
./lib/cushion/doc.rb
./lib/cushion/db.rb
./spec
./spec/spec.opts
./spec/spec_helper.rb
./spec/db_spec.rb

Cameron Boot.. 382

或者你可以跳过rake并使用'rspec'命令:

rspec path/to/spec/file.rb

在您的情况下,我认为只要您的./spec/db_spec.rb文件包含适当的帮助程序,它应该可以正常工作.

如果你使用的是旧版本的rspec,那就是:

spec path/to/spec/file.rb

使用新的rspec你必须使用"rspec path/to/file.rb" (31认同)

如果只想运行一个测试,则将测试开始的行号附加到文件中.示例:rspec path/to/spec/file.rb:455 (5认同)

也许我做错了,但我必须做"捆绑exec rspec path/to/spec/file.rb" (3认同)


mislav.. 199

原始调用:

rake spec SPEC=spec/controllers/sessions_controller_spec.rb \
          SPEC_OPTS="-e \"should log in with cookie\""

现在弄清楚如何将它嵌入到编辑器中.



1> Cameron Boot..:

或者你可以跳过rake并使用'rspec'命令:

rspec path/to/spec/file.rb

在您的情况下,我认为只要您的./spec/db_spec.rb文件包含适当的帮助程序,它应该可以正常工作.

如果你使用的是旧版本的rspec,那就是:

spec path/to/spec/file.rb


使用新的rspec你必须使用"rspec path/to/file.rb"
如果只想运行一个测试,则将测试开始的行号附加到文件中.示例:rspec path/to/spec/file.rb:455
也许我做错了,但我必须做"捆绑exec rspec path/to/spec/file.rb"

2> mislav..:

原始调用:

rake spec SPEC=spec/controllers/sessions_controller_spec.rb \
          SPEC_OPTS="-e \"should log in with cookie\""

现在弄清楚如何将它嵌入到编辑器中.


如果可以避免,请不要启动rakefile.这需要很多年龄
我改变了接受的答案,但SPEC_OPTS参数对我也有帮助.
现在这就是我所说的好答案.为什么不标记为"答案"?

3> juanpaco..:

这个问题很古老,但在搜索如何运行单个测试时会显示在Google的顶部.我不知道它是否是最近添加的,但是要从规范中运行单个测试,您可以执行以下操作:

rspec path/to/spec:

where -line number-是包含部分测试的行号.例如,如果您有一个类似的规范:

1: 
2: it "should be awesome" do
3:   foo = 3
4:   foo.should eq(3)
5: end
6:

假设它保存在spec/models/foo_spec.rb中.然后你会运行:

rspec spec/models/foo_spec.rb:2

它只会运行那一个规格.实际上,这个数字可以是2到5之间的任何数字.

希望这可以帮助!


这太棒了,应该是最重要的!
我一直在使用它,但是有时您想从一个文件运行多个测试。然后,您可以输入以下所有示例:`rspec spec / models / foo_spec.rb:2:12:49`

4> tcurdt..:

您还可以使用*e*xample测试用例的实际文本-e!

因此对于:

it "shows the plane arrival time"

您可以使用

rspec path/to/spec/file.rb -e 'shows the plane arrival time'
./scripts/spec path/to/spec/file.rb -e 'shows the plane arrival time'

这里不需要耙子.



5> boblin..:

来自帮助(spec -h):

-l, --line LINE_NUMBER           Execute example group or example at given line.
                                 (does not work for dynamically generated examples)

示例:spec spec/runner_spec.rb -l 162


在较新的Rspec版本中,根据文档和流行的答案,您将行号附加在冒号“:”之后。

6> Orion Edward..:

如果您将rspec作为插件而不是作为gem安装,那么您将没有spec可执行文件.

无论如何,您需要做的就是使用ruby运行该文件.rspec代码足够聪明,可以为您运行测试.

例如:

ruby myclass_spec.rb


可以像这样在文件中运行一个测试吗?

7> Zeke..:

http://github.com/grosser/single_test让你做的事......

rake spec:user          #run spec/model/user_spec.rb (searches for user*_spec.rb)
rake test:users_c       #run test/functional/users_controller_test.rb
rake spec:user:token    #run the first spec in user_spec.rb that matches /token/
rake test:user:token    #run all tests in user_test.rb that match /token/
rake test:last
rake spec:last



8> joelparkerhe..:

Ruby 1.9.2和Rails 3有一个简单的方法来运行一个spec文件:

  ruby -I spec spec/models/user_spec.rb

说明:

ruby命令往往比rake命令 快

-I spec 表示"在查找文件时包含'spec'目录"

spec/models/user_spec.rb 是我们要运行的文件.



9> 小智..:

要运行所有 rspec文件:rspec

注意:您必须位于项目的根目录中

要运行一个 rspec文件:rspec 'path_to/spec.rb'

注意:将"path_to/spec.rb"替换为您的路径.引号可选.

要从一个文件运行一个 rspec 测试:rspec 'path_to/spec.rb:7'

注意:: 7是测试开始的行号



10> Greg Hemphil..:

我无法使这些示例中的任何一个工作,也许是因为帖子很旧而且命令已经改变了?

经过一番探索,我发现这有效:

rspec spec/models/user_spec.rb

这将仅运行单个文件并在终端中提供有用的输出.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有