我希望能够运行单个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\""
现在弄清楚如何将它嵌入到编辑器中.
或者你可以跳过rake并使用'rspec'命令:
rspec path/to/spec/file.rb
在您的情况下,我认为只要您的./spec/db_spec.rb文件包含适当的帮助程序,它应该可以正常工作.
如果你使用的是旧版本的rspec,那就是:
spec path/to/spec/file.rb
原始调用:
rake spec SPEC=spec/controllers/sessions_controller_spec.rb \ SPEC_OPTS="-e \"should log in with cookie\""
现在弄清楚如何将它嵌入到编辑器中.
这个问题很古老,但在搜索如何运行单个测试时会显示在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之间的任何数字.
希望这可以帮助!
您还可以使用*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'
这里不需要耙子.
来自帮助(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作为插件而不是作为gem安装,那么您将没有spec
可执行文件.
无论如何,您需要做的就是使用ruby运行该文件.rspec代码足够聪明,可以为您运行测试.
例如:
ruby myclass_spec.rb
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
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
是我们要运行的文件.
要运行所有 rspec文件:rspec
注意:您必须位于项目的根目录中
要运行一个 rspec文件:rspec 'path_to/spec.rb'
注意:将"path_to/spec.rb"替换为您的路径.引号可选.
要从一个文件运行一个 rspec 测试:rspec 'path_to/spec.rb:7'
注意:: 7是测试开始的行号
我无法使这些示例中的任何一个工作,也许是因为帖子很旧而且命令已经改变了?
经过一番探索,我发现这有效:
rspec spec/models/user_spec.rb
这将仅运行单个文件并在终端中提供有用的输出.