|
NAMERex::Test::Base - Basic Test Module DESCRIPTIONThis is a basic test module to test your code with the help of local VMs. You can place your tests in the "t" directory. EXAMPLE use Rex::Test::Base;
use Data::Dumper;
use Rex -base;
test {
my $t = shift;
$t->name("ubuntu test");
$t->base_vm("http://box.rexify.org/box/ubuntu-server-12.10-amd64.ova");
$t->vm_auth(user => "root", password => "box");
$t->run_task("setup");
$t->has_package("vim");
$t->has_package("ntp");
$t->has_package("unzip");
$t->has_file("/etc/ntp.conf");
$t->has_service_running("ntp");
$t->has_content("/etc/passwd", qr{root:x:0:}ms);
run "ls -l";
$t->ok($? == 0, "ls -l returns success.");
$t->finish;
};
1; # last line
METHODSnew(name => $test_name)Constructor if used in OO mode. my $test = Rex::Test::Base->new(name => "test_name"); name($name)The name of the test. A VM called $name will be created for each test. If the VM already exists, Rex will try to reuse it. memory($amount)The amount of memory the VM should use, in Megabytes. cpus($number)The number of CPUs the VM should use. vm_auth(%auth)Authentication options for the VM. It accepts the same parameters as "Rex::Box::Base->auth()". base_vm($vm)The URL to a base image to be used for the test VM. redirect_port($port)Redirect local $port to the VM's SSH port (default: 2222). run_task($task)The task to run on the test VM. You can run multiple tasks by passing an array reference. TEST METHODShas_content($file, $regexp)Test if the content of $file matches against $regexp. has_dir($path)Test if $path is present and is a directory. has_file($file)Test if $file is present. has_package($package, $version)Test if $package is installed, optionally at $version. has_service_running($service)Test if $service is running. has_service_stopped($service)Test if $service is stopped. has_stat($file, $stat)Test if $file has properties described in hash reference $stat. List of supported checks:
|