Class: Inferno::CLI::Main

Inherits:
Thor
  • Object
show all
Defined in:
lib/inferno/apps/cli/main.rb

Constant Summary collapse

EXECUTE_HELP =
<<~END_OF_HELP.freeze
  Run Inferno tests in the command line. Exits with 0 only if test entity passes.
  Must be run with test kit as working directory.

  You must have background services running: `bundle exec inferno services start`

  You can view suite ids with: `bundle exec inferno suites`

  You can select an output format with the `--outputter` option. Current outputters
  are console (default), plain, quiet, and json. JSON-formatted output will copy
  Inferno's REST API: https://inferno-framework.github.io/inferno-core/api-docs/#/Result.

  Examples:

      (These examples only work from within the inferno_core directory).

      `bundle exec inferno execute --suite dev_validator \
                                  --inputs "url:https://hapi.fhir.org/baseR4" \
                                           patient_id:1234321`
      => Outputs test results

      `bundle exec inferno execute --suite dev_validator \
                                   --inputs "url:https://hapi.fhir.org/baseR4" \
                                            patient_id:1234321 \
                                   --tests 1.01 1.02`
      => Run specific tests from suite

      `bundle exec inferno execute --suite dev_validator \
                                   --inputs "url:https://hapi.fhir.org/baseR4" \
                                            patient_id:1234321 \
                                   --outputter json`
      => Outputs test results in JSON
END_OF_HELP

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

https://github.com/rails/thor/issues/244 - Make Thor exit(1) on Errors/Exceptions

Returns:

  • (Boolean)


149
150
151
# File 'lib/inferno/apps/cli/main.rb', line 149

def self.exit_on_failure?
  true
end

Instance Method Details

#consoleObject



14
15
16
17
# File 'lib/inferno/apps/cli/main.rb', line 14

def console
  Migration.new.run(Logger::INFO)
  Console.new.run
end

#executeObject



143
144
145
146
# File 'lib/inferno/apps/cli/main.rb', line 143

def execute
  Execute.boot_full_inferno
  Execute.new.run(options)
end

#migrateObject



20
21
22
# File 'lib/inferno/apps/cli/main.rb', line 20

def migrate
  Migration.new.run
end

#startObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/inferno/apps/cli/main.rb', line 29

def start
  Migration.new.run(Logger::INFO)

  without_bundler do
    command = 'foreman start --env=/dev/null'

    if `gem list -i foreman`.chomp == 'false'
      puts "You must install foreman with 'gem install foreman' prior to running Inferno."
    end

    if options[:watch]
      if `gem list -i rerun`.chomp == 'false'
        puts "You must install 'rerun' with 'gem install rerun' to restart on file changes."
      end

      command = "rerun \"#{command}\" --background"
    end

    exec command
  end
end

#suitesObject



52
53
54
# File 'lib/inferno/apps/cli/main.rb', line 52

def suites
  Suites.new.run
end

#versionObject



65
66
67
# File 'lib/inferno/apps/cli/main.rb', line 65

def version
  puts "Inferno Core v#{Inferno::VERSION}"
end