Skip to main content

Profile Files

A Chef InSpec profile may contain additional files that can be accessed during tests. A profile file enables you to separate the logic of your tests from the data your tests check for. For example, the list of ports you require to be open.

Files location

Add files to the files directory at the root of a profile.

├── controls
│   ├── example.rb
│── files
│   └── services.yml
└── inspec.yml

Access file

Use inspec.profile.file('FILENAME.yml') to access data from the file.


With files/services.yml containing the following data:

- service_name: httpd-alpha
  port: 80
- service_name: httpd-beta
  port: 8080

The tests in example.rb can now access this file:

my_services = yaml(content: inspec.profile.file('services.yml')).params

my_services.each do |s|
  describe service(s['service_name']) do
    it { should be_running }

  describe port(s['port']) do
    it { should be_listening }
Edit this page on GitHub

Thank you for your feedback!


Search Results