如何运行多个特定的RSpec测试?

时间:2018-02-14 01:35:41

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

我有一个巨大的测试套件(> 5000次测试)需要一个小时才能运行。 400失败了,我有一个这样的失败测试列表:

rspec ./spec/models/fullscreen_hidden_view_state_spec.rb:116 # FullscreenHiddenViewState showing a playlist on third element - slide has all the right links and properties
rspec ./spec/features/fullscreen/play_spec.rb:59 # View case in fullscreen presention mode Courtesy section when viewing the cases discussion via the cases hidden share token the Add To button should be hidden
rspec ./spec/features/cases/index_spec.rb:204 # finding a case Filtering by study modality Filtering by modality only shows cases with modality
rspec ./spec/models/playlist_spec.rb[1:2:2:2:1] # Playlist it should behave like an entity with privacy .by_privilege (Playlist examples) for annonymous contains public playlists
rspec ./spec/models/playlist_spec.rb[1:2:2:2:2] # Playlist it should behave like an entity with privacy .by_privilege (Playlist examples) for annonymous works
rspec ./spec/models/playlist_spec.rb[1:2:2:3:1] # Playlist it should behave like an entity with privacy .by_privilege (Playlist examples) for privileged user contains all playlists
rspec ./spec/models/playlist_spec.rb[1:2:2:1:1] # Playlist it should behave like an entity with privacy .by_privilege (Playlist examples) for unprivileged users contains public and the users unlisted playlists
rspec ./spec/models/playlist_spec.rb[1:2:2:1:2] # Playlist it should behave like an entity with privacy .by_privilege (Playlist examples) for unprivileged users works
rspec ./spec/models/user_spec.rb:1004 # User quotas limited_unlisted_cases? user with manage cases privilege should equal false
rspec ./spec/models/user_spec.rb:813 # User quotas #can_add_draft_case? when non-deleted draft case count above the limit for privileged user should equal true
rspec ./spec/models/user_spec.rb:920 # User quotas #allowed_draft_cases user with manage cases privilege should eq -1
rspec ./spec/models/user_spec.rb:962 # User quotas allowed_unlisted_playlists user with manage cases privilege should eq -1
rspec ./spec/models/user_spec.rb:861 # User quotas allowed_unlisted_cases user with manage cases privilege should eq -1

我知道我可以运行每一行来运行特定的测试,但有一种简单的方法可以运行所有这些吗?

3 个答案:

答案 0 :(得分:9)

您可以使用以下语法为多个文件运行规范:

rspec path/to/first/file path/to/second/file

答案 1 :(得分:2)

您可以使用rspec --only-failures选项,该选项仅加载并运行失败的spec文件。

答案 2 :(得分:0)

FYI,可能无法完全回答这个问题,但是可以帮助其他访问者进行类似的查询。

多个具有模式的文件

如果您希望从某些特定的文件夹中运行规范,则可以使用

rspec --pattern=./spec/features/**/*_spec.rb

如果要排除某些文件

rspec --pattern=./spec/features/**/*_spec.rb --exclude-pattern="./spec/features/{folder1,folder2}/**/*_spec.rb"

有关更多信息,请参见此https://relishapp.com/rspec/rspec-core/v/3-8/docs/command-line/pattern-option

以某些字符或短语开头的多个文件

rspec --pattern="./spec/features/[t]*_spec.rb"

此处,它将运行所有以t开头的文件名的规范。

rspec --pattern="./spec/features/[tran|u]*_spec.rb"

此处,它将运行所有以tranu开头的文件名的规范。

要了解更多信息,请访问How to run multiple spec files in RSpec using single command in terminal?