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: