The following example walks you through enabling Litmus testing in a module.
The process involves editing or adding code to the following files:
Before you begin
This guide assumes your module is compatible with Puppet Development Kit (PDK),
meaning it was either created with
pdk new module or has been converted to use PDK using the
pdk convert command.
To verify that your module is compatible with PDK, look in the modules
metadata.json file and see whether there is an entry that states the PDK version.
It will look something like
The PDK ships litmus as an experimental component.
To enable it, follow the steps below.
1. Add required development dependencies
Inside the root directory of your module, add the following entries to the
--- fixtures: repositories: facts: 'https://github.com/puppetlabs/puppetlabs-facts.git' puppet_agent: 'https://github.com/puppetlabs/puppetlabs-puppet_agent.git' provision: 'https://github.com/puppetlabs/provision.git'
2. Create the
spec folder of the module, create a
spec_helper_acceptance.rb file with the following contents:
# frozen_string_literal: true require 'puppet_litmus' PuppetLitmus.configure! require 'spec_helper_acceptance_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_acceptance_local.rb'))
This file will later become managed by the PDK. For local changes, see the next step.
3. Create the
Optional: For module-specific methods to be used during acceptance testing, create a
spec/spec_helper_acceptance_local.rb file. This will be loaded at the start of each test run. If you need to use any of the Litmus methods in this file, include Litmus as a singleton class:
# frozen_string_literal: true require 'singleton' class Helper include Singleton include PuppetLitmus end def some_helper_method Helper.instance.bolt_run_script('path/to/file') end
4. Add tests to
You can find litmus test examples on their own page.