table of contents
Rex::Test::Base(3pm) | User Contributed Perl Documentation | Rex::Test::Base(3pm) |
NAME¶
Rex::Test::Base - Basic Test Module
DESCRIPTION¶
This 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
METHODS¶
new(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 METHODS¶
has_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:
2023-03-06 | perl v5.36.0 |