Method: Inspec::Runner#add_target
- Defined in:
- lib/inspec/runner.rb
#add_target(target, _opts = []) ⇒ Object
add_target allows the user to add a target whose tests will be run when the user calls the run method.
A target is a path or URL that points to a profile. Using this target we generate a Profile and a ProfileContext. The content (libraries, tests, and attributes) from the Profile are loaded into the ProfileContext.
If the profile depends on other profiles, those profiles will be loaded on-demand when include_content or required_content are called using similar code in Inspec::DSL.
Once the we’ve loaded all of the tests files in the profile, we query the profile for the full list of rules. Those rules are registered with the @test_collector which is ultimately responsible for actually running the tests.
TODO: Deduplicate/clarify the loading code that exists in here, the ProfileContext, the Profile, and Inspec::DSL
188 189 190 191 192 193 194 195 196 |
# File 'lib/inspec/runner.rb', line 188 def add_target(target, _opts = []) profile = Inspec::Profile.for_target(target, vendor_cache: @cache, backend: @backend, controls: @controls, attributes: @conf[:attributes]) raise "Could not resolve #{target} to valid input." if profile.nil? @target_profiles << profile if supports_profile?(profile) end |