UnitTest#
NAME#
Kernel::System::UnitTest - functions to run all or some OTRS unit tests
PUBLIC INTERFACE#
new()#
create unit test object. Do not use it directly, instead use:
my $UnitTestObject = $Kernel::OM->Get('Kernel::System::UnitTest');
Run()#
run all or some tests located in scripts/test/\*\*/\*.t
and print the result.
$UnitTestObject->Run(
Tests => ['JSON', 'User'], # optional, execute certain test files
Directory => ['Selenium', 'User'], # optional, execute tests in subdirectory
Package => ['ITSMCore'], # optional, execute tests of installed package
ExcludeDirectory => ['Selenium/Agent/Admin'], # optional, all test files in the specified directory will be Excluded.
SOPMFile => ['ITSMCore.sopm'], # optional, execute all test files which are defined in these sopm.
Verbose => 1, # optional (default 0), only show result details for all tests, not just failing
SubmitURL => $URL, # optional, send results to unit test result server
SubmitAuth => $SubmitAuth, # optional authentication string for unit test result server
SubmitResultAsExitCode => 1, # optional, specify if exit code should not indicate if tests were ok/not ok, but if submission was successful instead
JobID => 12, # optional job ID for unit test submission to server
Scenario => 'Znuny 6 git', # optional scenario identifier for unit test submission to server
PostTestScripts => ['...'], # Script(s) to execute after a test has been run.
# You can specify %File%, %TestOk% and %TestNotOk% as dynamic arguments.
PreSubmitScripts => ['...'], # Script(s) to execute after all tests have been executed
# and the results are about to be sent to the server.
NumberOfTestRuns => 10, # optional (default 1), number of successive runs for every single unit test
);
Please note that the individual test files are not executed in the main process, but instead in separate forked child processes which are controlled by Kernel::System::UnitTest::Driver. Their results will be transmitted to the main process via a local file.
_Color()#
this will color the given text (see L<Term::ANSIColor::color()>) if ANSI output is available and active, otherwise the text stays unchanged.
my $PossiblyColoredText = $CommandObject->_Color('green', $Text);