Module: Nonnative::Cucumber

Defined in:
lib/nonnative/cucumber.rb

Overview

Lazily installs the Cucumber integration once the Cucumber Ruby DSL is ready.

Requiring nonnative outside a running Cucumber environment should not fail, but when Cucumber does finish booting its support-code registry this installer still needs to register the hooks and step definitions defined here.

Supported hooks:

  • @startup: start before scenario, stop after scenario
  • @manual: stop after scenario; use When I start the system to start manually
  • @clear: clear memoized Nonnative state before scenario
  • @reset: reset proxies after scenario

Installed step definitions:

  • Given I set the proxy for service {string} to {string}
  • Then I should reset the proxy for service {string}
  • When I start the system
  • When I attempt to start the system
  • When I attempt to stop the system
  • Then I should see {string} as unhealthy
  • Then I should see {string} as healthy
  • Then the process {string} should consume less than {string} of memory
  • Then starting the system should raise an error
  • Then stopping the system should raise an error
  • Then I should see a log entry of {string} for process {string}
  • Then I should see a log entry of {string} in the file {string}

Defined Under Namespace

Modules: Assertions, LanguageHook, LifecycleSteps, ProxySteps, Registration, WorldHooks

Class Method Summary collapse

Class Method Details

.bootstrap!Object



222
223
224
225
226
227
228
229
230
# File 'lib/nonnative/cucumber.rb', line 222

def bootstrap!
  return if @bootstrapped

  dsl_singleton = ::Cucumber::Glue::Dsl.singleton_class
  dsl_singleton.prepend(LanguageHook) unless dsl_singleton.ancestors.include?(LanguageHook)

  @bootstrapped = true
  install!
end

.install!Object



232
233
234
235
236
237
238
# File 'lib/nonnative/cucumber.rb', line 232

def install!
  return if @installed
  return unless ready?

  Registration.install!
  @installed = true
end