First, make sure you append this function into your framework's Common.js file:
function RunUftTest(/**string*/testPath, /**string*/resultsPath)
{
var qtApp = new ActiveXObject("QuickTest.Application");
qtApp.Launch();
qtApp.Visible = false;
// Optional settings
qtApp.Options.Run.ViewResults = false;
qtApp.Options.Run.RunMode = "Fast";
qtApp.Open(testPath, true);
var qtTest = qtApp.Test;
var qtResultsOpt = new ActiveXObject("QuickTest.RunResultsOptions");
if(resultsPath)
{
qtResultsOpt.ResultsLocation = resultsPath;
}
qtTest.Run(qtResultsOpt, true);
var statusCode = qtTest.LastRunResults.Status;
Tester.Assert(""+qtTest.Name, statusCode=="Passed",
[
"Status: "+statusCode,
"LastError: "+qtTest.LastRunResults.LastError,
"Full Path: "+qtTest.LastRunResults.Path,
new SeSReportLink(qtTest.LastRunResults.Path+'\\Report\\run_results.html', 'Detailed Report'),
new SeSReportFile(qtTest.LastRunResults.Path+'\\Report\\run_results.xml')], {comment:statusCode});
Log("UFT status: " + statusCode);
Log("Results folder: " + qtTest.LastRunResults.Path);
qtTest.Close();
qtApp.Quit();
}
Then just use it from Main.js:
RunUftTest("C:\\Users\\Administrator\\Desktop\\Demo\\UFT\\CodeSamplesPlus\\Flight_Samples\\OpenNumBound");
The result may look like that for the failing test case. The 'Detailed Report' contains more information about the test case execution:
