рдореИрдВ рдкрд╣рд▓реЗ рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдкрдбрд╝ рдЧрдпрд╛ рд╣реВрдВред рдЬрдм рдПрдХ before(:all)
рд╣реБрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рд╕рдореВрд╣ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдмрд╛рд╣рд░реА рдЙрджрд╛рд╣рд░рдг рд╕рдореВрд╣ рдХреЛ рд▓рдВрдмрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
describe do
it 'should pass' do
RSpec.describe do
before(:all) { skip }
it('should be skipped') { }
end.run
end
end
.*
Pending: (Failures listed here are expected and do not affect your suite's status)
1) should be skipped
# No reason given
# ./spec.rb:7
Finished in 0.0013 seconds (files took 0.07034 seconds to load)
2 examples, 0 failures, 1 pending
F*
Pending: (Failures listed here are expected and do not affect your suite's status)
1) should be skipped
# No reason given
# ./spec.rb:7
Failures:
1) should pass FIXED
Expected pending 'No reason given' to fail. No error was raised.
# ./spec.rb:4
Finished in 0.00124 seconds (files took 0.06776 seconds to load)
2 examples, 1 failure, 1 pending
Failed examples:
rspec ./spec.rb:4 # should pass
рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдареАрдХ рд╣реИ рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдерд▓рдЧ рдЙрджрд╛рд╣рд░рдг рд╕рдореВрд╣ рд╣реИрдВ:
describe do
it 'should pass' do
RSpec.describe do
it('passes') { }
end.run
RSpec.describe do
before(:all) { skip }
it('should be skipped') { }
end.run
end
end
..*
Pending: (Failures listed here are expected and do not affect your suite's status)
1) should be skipped
# No reason given
# ./spec.rb:11
Finished in 0.00145 seconds (files took 0.0682 seconds to load)
3 examples, 0 failures, 1 pending
:wave: рдпрджрд┐ рдЖрдк rspec-core рд╕реНрдкреЗрдХреНрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣рдореЗрдВ rspec рдХреЗ рднреАрддрд░ рд╕реНрдкреЗрдХреНрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдЕрд▓рдЧрд╛рд╡ (рд░реЗрдд рдмреЙрдХреНрд╕рд┐рдВрдЧ) рджреЗрдЦреЗрдВрдЧреЗ, рдпрд╣ рдПрдХ "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ" рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдмрд╛рд╣рд░реА рдЖрд░рдПрд╕рдкреАрдИрд╕реА рд╕реЗ "рдЖрдВрддрд░рд┐рдХ рдЖрд░рдПрд╕рдкреАрдИрд╕реА" рдХрд╛рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдЬреЛ рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЖрдкрдХреЗ рджреЛрдиреЛрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 1 рд╕реНрдкреЗрдХ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП ...
рдХреНрдпрд╛ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╣реБрдХ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рд╕реЗ рдЫрджреНрдо рдХреЛрдбрд┐рдд рд╣реИ?
@JonRowe рд╣рдо RSpec рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреБрдЫ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЖрдк рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24942#note_14063760
рд╣рд╛рдБ, рдпрд╣ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛ рдиреНрдпреВрдирддрдо рдкреБрдирд░реБрддреНрдкрд╛рджрди рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ @godfat рдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рд╣рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рддрдм рддрдХ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ --tag skip
рдХреЗ рд╕рд╛рде rspec рдЪрд▓рд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЫреЛрдбрд╝реЗ рдЧрдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдЧрд╛)ред рд╣рдордиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ рдпрджрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ :quarantine
рд╣реИ, рдЬрдм рддрдХ рдХрд┐ :quarantine
рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝реЗрдЧрд╛ред
рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддреЛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред
рдареАрдХ рд╣реИ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯрд░ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ run
рдкрд░ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЖрдВрддрд░рд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рди рд╣реЛред рдлрд┐рд░ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ / рдЕрд╕рдлрд▓ рд╕рдореВрд╣реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдлрд┐рд░ рдЖрдк RSpec::Core::Sandbox.sandboxed
рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрд╛рд╣рд░реА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдкреЗрдЯреЗрдВред
рдЖрдк рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣рдорд╛рд░реЗ spec/spec_helper.rb рдФрд░ spec/support/sandboxing.rb рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрд╣, рдзрдиреНрдпрд╡рд╛рдж @JonRowe! рдпрд╣ RSpec рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмрд╛рддреЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рд╛ рдЙрддреНрддреАрд░реНрдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ред рдмрд╛рдХреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрд╣, рдзрдиреНрдпрд╡рд╛рдж @JonRowe! рдпрд╣ RSpec рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмрд╛рддреЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рд╛ рдЙрддреНрддреАрд░реНрдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ред рдмрд╛рдХреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред