Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
d54cb37d
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d54cb37d
编写于
2月 19, 2019
作者:
S
Sanad Liaquat
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Retry failed tests with rspec-retry
Does not retry if tagged :quarantine. Also adds unit tests.
上级
50306121
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
67 addition
and
0 deletion
+67
-0
qa/Gemfile
qa/Gemfile
+1
-0
qa/Gemfile.lock
qa/Gemfile.lock
+3
-0
qa/spec/spec_helper.rb
qa/spec/spec_helper.rb
+12
-0
qa/spec/spec_helper_spec.rb
qa/spec/spec_helper_spec.rb
+51
-0
未找到文件。
qa/Gemfile
浏览文件 @
d54cb37d
...
...
@@ -8,3 +8,4 @@ gem 'rspec', '~> 3.7'
gem
'selenium-webdriver'
,
'~> 3.12'
gem
'airborne'
,
'~> 0.2.13'
gem
'nokogiri'
,
'~> 1.10.1'
gem
'rspec-retry'
,
'~> 0.6.1'
qa/Gemfile.lock
浏览文件 @
d54cb37d
...
...
@@ -76,6 +76,8 @@ GEM
rspec-mocks (3.7.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.7.0)
rspec-retry (0.6.1)
rspec-core (> 3.3)
rspec-support (3.7.0)
rubyzip (1.2.2)
selenium-webdriver (3.141.0)
...
...
@@ -101,6 +103,7 @@ DEPENDENCIES
pry-byebug (~> 3.5.1)
rake (~> 12.3.0)
rspec (~> 3.7)
rspec-retry (~> 0.6.1)
selenium-webdriver (~> 3.12)
BUNDLED WITH
...
...
qa/spec/spec_helper.rb
浏览文件 @
d54cb37d
require_relative
'../qa'
require
'rspec/retry'
%w[helpers shared_examples]
.
each
do
|
d
|
Dir
[
::
File
.
join
(
__dir__
,
d
,
'**'
,
'*.rb'
)].
each
{
|
f
|
require
f
}
...
...
@@ -31,6 +32,17 @@ RSpec.configure do |config|
config
.
profile_examples
=
10
config
.
order
=
:random
Kernel
.
srand
config
.
seed
# show retry status in spec process
config
.
verbose_retry
=
true
# show exception that triggers a retry if verbose_retry is set to true
config
.
display_try_failure_messages
=
true
config
.
around
do
|
example
|
retry_times
=
example
.
metadata
.
keys
.
include?
(
:quarantine
)
?
1
:
3
example
.
run_with_retry
retry:
retry_times
end
end
# Skip tests in quarantine unless we explicitly focus on them.
...
...
qa/spec/spec_helper_spec.rb
浏览文件 @
d54cb37d
...
...
@@ -28,6 +28,22 @@ describe 'rspec config tests' do
end
end
let
(
:group_2
)
do
RSpec
.
describe
do
before
(
:all
)
do
@expectations
=
[
1
,
2
,
3
]
end
example
'not in quarantine'
do
expect
(
@expectations
.
shift
).
to
be
(
3
)
end
example
'in quarantine'
,
:quarantine
do
expect
(
@expectations
.
shift
).
to
be
(
3
)
end
end
end
context
'with no tags focussed'
do
before
do
group
.
run
...
...
@@ -301,4 +317,39 @@ describe 'rspec config tests' do
end
end
end
context
'rspec retry'
do
context
'in an untagged context'
do
before
do
group_2
.
run
end
it
'should run example :retry times'
do
examples
=
group_2
.
descendant_filtered_examples
ex
=
examples
.
find
{
|
e
|
e
.
description
==
'not in quarantine'
}
expect
(
ex
.
execution_result
.
status
).
to
eq
(
:passed
)
end
end
context
'with :quarantine focussed'
do
before
do
RSpec
.
configure
do
|
config
|
config
.
inclusion_filter
=
:quarantine
end
group_2
.
run
end
after
do
RSpec
.
configure
do
|
config
|
config
.
inclusion_filter
.
clear
end
end
it
'should run example once only'
do
examples
=
group_2
.
descendant_filtered_examples
ex
=
examples
.
find
{
|
e
|
e
.
description
==
'in quarantine'
}
expect
(
ex
.
execution_result
.
status
).
to
eq
(
:failed
)
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录