No description
Find a file
Dominik Richter 37ad8f9531 run test setup concurrently + only once
Instead of having RSpec re-run its world multiple times, run it only once with all tests.

Which leaves us with one more thing to solve: we want to start tests as soon as the container is up and they are set up. At the moment, the containers come up and are set up concurrently, including test registry, but the tests themselves are in simple sequence.

Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
2015-09-22 02:17:27 +02:00
bin improvement: set default user at a later stage to support user@target 2015-09-22 02:15:43 +02:00
lib run test setup concurrently + only once 2015-09-22 02:17:27 +02:00
test run test setup concurrently + only once 2015-09-22 02:17:27 +02:00
.gitignore ignore gem and gallery 2015-09-22 02:15:40 +02:00
.rubocop.yml enforce trailing commas 2015-09-22 02:15:42 +02:00
.tests.yaml add debian and fedora test boxes 2015-09-22 01:42:27 +02:00
.travis.yml add travis config 2015-09-22 02:15:41 +02:00
Gemfile add license_finder to dev gems 2015-06-19 15:06:13 +02:00
Rakefile use single quotes 2015-09-03 20:35:23 +02:00
README.md add bundle to readme 2015-09-22 01:42:27 +02:00
vulcano.gemspec use concurrent container start/stop in tests 2015-09-22 02:17:27 +02:00

Vulcano CLI

Test your Server, VM, or workstation.

Small example: Write a your checks in test.rb:

describe file('/proc/cpuinfo') do
  it { should be_file }
end

describe ssh_config do
  its('Protocol') { should eq('2') }
end

Run this file locally:

vulcano exec test.rb

Installation

Requires Ruby ( >1.9 ).

To simply run it without installation, you must install bundler:

bundle install
bundle exec bin/vulcano help

To install it as a gem locally, run:

gem build vulcano.gemspec
gem install vulcano-*.gem

You should now be able to run:

vulcano --help

Configuration

Run tests against different targets:

# run test locally
vulcano exec test.rb

# run test on remote host on SSH
vulcano exec test.rb -t ssh://user@hostname

# run test on remote windows host on WinRM
vulcano exec test.rb -t winrm://Administrator@windowshost

# run test on docker container
vulcano exec test.rb -t docker://image_id

Custom resources

You can easily create your own resources. Here is a custom resource for an application called Gordon and save it in gordon_config.rb:

require 'yaml'

class GordonConfig < Vulcano.resource
  name 'gordon_config'

  def initialize
    @path = '/etc/gordon/config.yaml'
    @config = vulcano.file(@path).content
    @params = YAML.load(@config)
  end

  def method_missing(name)
    @params[name.to_s]
  end
end

Include this file in your test.rb:

require_relative 'gordon_config'

Now you can start using your new resource:

describe gordon_config do
  its('Version') { should eq('1.0') }
end

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Copyright 2015 Chef Software Inc. All rights reserved. Copyright 2015 Vulcano Security GmbH. All rights reserved. Copyright 2015 Dominik Richter. All rights reserved.