# class Chef::Knife::CookbookTest

### Public Instance Methods

cookbook_loader() click to toggle source

    # File lib/chef/knife/cookbook_test.rb, line 89
    def cookbook_loader
      @cookbook_loader ||= Chef::CookbookLoader.new(config[:cookbook_path])
    end

run() click to toggle source

    # File lib/chef/knife/cookbook_test.rb, line 45
    def run
      config[:cookbook_path] ||= Chef::Config[:cookbook_path]

      checked_a_cookbook = false
      if config[:all]
        cl = cookbook_loader
        cl.load_cookbooks
        cl.each do |key, cookbook|
          checked_a_cookbook = true
          test_cookbook(key)
        end
      else
        @name_args.each do |cb|
          ui.info "checking #{cb}"
          next unless cookbook_loader.cookbook_exists?(cb)
          checked_a_cookbook = true
          test_cookbook(cb)
        end
      end
      unless checked_a_cookbook
        ui.warn("No cookbooks to test in #{Array(config[:cookbook_path]).join(',')} - is your cookbook path misconfigured?")
      end
    end

test_cookbook(cookbook) click to toggle source

    # File lib/chef/knife/cookbook_test.rb, line 69
    def test_cookbook(cookbook)
      ui.info("Running syntax check on #{cookbook}")
      Array(config[:cookbook_path]).reverse.each do |path|
        syntax_checker = Chef::Cookbook::SyntaxCheck.for_cookbook(cookbook, path)
        test_ruby(syntax_checker)
        test_templates(syntax_checker)
      end
    end

test_ruby(syntax_checker) click to toggle source

    # File lib/chef/knife/cookbook_test.rb, line 79
    def test_ruby(syntax_checker)
      ui.info("Validating ruby files")
      exit(1) unless syntax_checker.validate_ruby_files
    end

test_templates(syntax_checker) click to toggle source

    # File lib/chef/knife/cookbook_test.rb, line 84
    def test_templates(syntax_checker)
      ui.info("Validating templates")
      exit(1) unless syntax_checker.validate_templates
    end