Description
This property specifies the fully-qualified name of the file that contains the source code of the routine that corresponds to ScriptRoutineObj.
Declaration
ScriptRoutineObj.ScriptFileName
Read-Only Property | String |
ScriptRoutineObj | An expression, variable or parameter that specifies a reference to a ScriptRoutine object |
Applies To
The property is applied to the following object:
Property Value
String that specifies the fully-qualified name of the script file that contains the script routine.
Remarks
To obtain the file name as it is shown in the Project Explorer panel, use the UnitName
property.
Example
The following example demonstrates how to obtain information on the script routines that belong to the specified test project. The sample Visual Basic and C# applications obtain the script routines and display information on them.
Visual Basic
Sub MySub
' Initializes variables
sProjectNameFileName = "C:\Work Folder\TestSuite\TestSuite.pjs"
sProjectName = "TestProject_VB"
' Creates the application object
Set TestCompleteApp = CreateObject("TestComplete.TestCompleteApplication.14")
' Obtains the integration object
Set IntegrationObject = TestCompleteApp.Integration
' Opens the project
IntegrationObject.OpenProjectSuite sProjectNameFileName
' Checks whether the project was opened
If Not IntegrationObject.IsProjectSuiteOpened Then
MsgBox "The project suite was not opened."
Exit Sub
End If
' Needed to process errors
Err.Clear
On Error GoTo Err_Label
UserForm1.TextBox1.Text = ""
UserForm1.Label1.Caption = ""
' Obtains the RoutinesIterator object
Set RoutinesIterator = IntegrationObject.ProjectRoutinesIterator(sProjectName)
Params = ""
Info = ""
RoutinesIterator.Reset
' Obtains the script routine
Set Routine = RoutinesIterator.Next
' Posts information on the project and project suite
Info = "Project: " & Routine.ProjectName & vbCrLf & _
"Project File: " & Routine.ProjectFileName & vbCrLf & vbCrLf & _
"Project Suite: " & Routine.ProjectSuiteName & vbCrLf & _
"Project Suite File: " & Routine.ProjectSuiteFileName
UserForm1.Label1.Caption = Info
RoutinesIterator.Reset
Info = ""
' Iterates through the project’s routines
While RoutinesIterator.HasNext
Set Routine = RoutinesIterator.Next
If Routine.ParamCount > 0 Then
Params = "("
For i = 0 To Routine.ParamCount - 2
Params = Params & Routine.ParamType(i) & " : " & Routine.ParamName(i) & "; "
Next i
Params = Params & Routine.ParamType(Routine.ParamCount - 1) & " : " & _
Routine.ParamName(Routine.ParamCount - 1) & ")"
Else
Params = ""
End If
' Displays information on the routine
Info = Info & "Routine: " & Routine.Name & Params & vbCrLf & _
"Unit: " & Routine.UnitName & vbCrLf & _
"Script language: " & Routine.Language & vbCrLf & _
"Tree path: " & Routine.ProjectExplorerTreePath & vbCrLf & _
"Script File: " & Routine.ScriptFileName & vbCrLf
Info = Info & vbCrLf
Wend
UserForm1.TextBox1.Text = Info
Err_Label:
' Processes errors
If Err.Number <> 0 Then
MsgBox "An error has occurred while processing the script routines: " + Err.Description, vbCritical, "Error"
End If
' Quits TestComplete
TestCompleteApp.Quit
End Sub
' Initializes variables
sProjectNameFileName = "C:\Work Folder\TestSuite\TestSuite.pjs"
sProjectName = "TestProject_VB"
' Creates the application object
Set TestCompleteApp = CreateObject("TestComplete.TestCompleteApplication.14")
' Obtains the integration object
Set IntegrationObject = TestCompleteApp.Integration
' Opens the project
IntegrationObject.OpenProjectSuite sProjectNameFileName
' Checks whether the project was opened
If Not IntegrationObject.IsProjectSuiteOpened Then
MsgBox "The project suite was not opened."
Exit Sub
End If
' Needed to process errors
Err.Clear
On Error GoTo Err_Label
UserForm1.TextBox1.Text = ""
UserForm1.Label1.Caption = ""
' Obtains the RoutinesIterator object
Set RoutinesIterator = IntegrationObject.ProjectRoutinesIterator(sProjectName)
Params = ""
Info = ""
RoutinesIterator.Reset
' Obtains the script routine
Set Routine = RoutinesIterator.Next
' Posts information on the project and project suite
Info = "Project: " & Routine.ProjectName & vbCrLf & _
"Project File: " & Routine.ProjectFileName & vbCrLf & vbCrLf & _
"Project Suite: " & Routine.ProjectSuiteName & vbCrLf & _
"Project Suite File: " & Routine.ProjectSuiteFileName
UserForm1.Label1.Caption = Info
RoutinesIterator.Reset
Info = ""
' Iterates through the project’s routines
While RoutinesIterator.HasNext
Set Routine = RoutinesIterator.Next
If Routine.ParamCount > 0 Then
Params = "("
For i = 0 To Routine.ParamCount - 2
Params = Params & Routine.ParamType(i) & " : " & Routine.ParamName(i) & "; "
Next i
Params = Params & Routine.ParamType(Routine.ParamCount - 1) & " : " & _
Routine.ParamName(Routine.ParamCount - 1) & ")"
Else
Params = ""
End If
' Displays information on the routine
Info = Info & "Routine: " & Routine.Name & Params & vbCrLf & _
"Unit: " & Routine.UnitName & vbCrLf & _
"Script language: " & Routine.Language & vbCrLf & _
"Tree path: " & Routine.ProjectExplorerTreePath & vbCrLf & _
"Script File: " & Routine.ScriptFileName & vbCrLf
Info = Info & vbCrLf
Wend
UserForm1.TextBox1.Text = Info
Err_Label:
' Processes errors
If Err.Number <> 0 Then
MsgBox "An error has occurred while processing the script routines: " + Err.Description, vbCritical, "Error"
End If
' Quits TestComplete
TestCompleteApp.Quit
End Sub
C#
// Add the following lines to your code
using System.Runtime.InteropServices;
using TestComplete;
…
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_Connect_Click(object sender, EventArgs e)
{
const string TCProgID = "TestComplete.TestCompleteApplication.14";
object TestCompleteObject = null;
// Obtains access to TestComplete
try
{
TestCompleteObject = Marshal.GetActiveObject(TCProgID);
}
catch
{
try
{
TestCompleteObject = Activator.CreateInstance(Type.GetTypeFromProgID(TCProgID));
}
catch
{
}
}
if (TestCompleteObject == null) return;
// Obtains ITestCompleteCOMManager
TestComplete.ITestCompleteCOMManager TestCompleteManager = (TestComplete.ITestCompleteCOMManager) TestCompleteObject;
// Obtains Integration object
TestComplete.ItcIntegration IntegrationObject = TestCompleteManager.Integration;
// Loads the project suite
IntegrationObject.OpenProjectSuite("C:\\Work Folder\\TestSuite\\TestSuite.pjs");
// Checks whether the project suite was opened
// If the project suite cannot be opened, closes TestComplete
if (!IntegrationObject.IsProjectSuiteOpened())
{
System.Windows.Forms.MessageBox.Show("Could not open the project suite.");
// Closes TestComplete
TestCompleteManager.Quit();
// Releases COM objects
Marshal.ReleaseComObject(IntegrationObject);
Marshal.ReleaseComObject(TestCompleteManager);
Marshal.ReleaseComObject(TestCompleteObject);
return;
}
try
{
// Obtains script routines of the TestProject_VB project and displays their names
TestComplete.ItcEnumScriptRoutine RoutinesIterator = IntegrationObject.get_ProjectRoutinesIterator("TestProject_VB");
// Creates a list view that will display information on the project script routines
ListView NewRoutinesList = new ListView();
NewRoutinesList.View = View.Details;
NewRoutinesList.FullRowSelect = true;
NewRoutinesList.Sorting = SortOrder.Ascending;
NewRoutinesList.Size = new Size(400, 200);
NewRoutinesList.Top = 41;
NewRoutinesList.Left = 12;
// Create columns for the routines information
NewRoutinesList.Columns.Add("Routine");
NewRoutinesList.Columns.Add("Unit");
NewRoutinesList.Columns.Add("Language");
NewRoutinesList.Columns.Add("Project");
NewRoutinesList.Columns.Add("Project File");
NewRoutinesList.ShowItemToolTips = true;
// Creates a text box that will display information on the current project suite
RichTextBox InfoTextBox = new RichTextBox();
InfoTextBox.Size = new Size(400, 35);
InfoTextBox.Top = 300;
InfoTextBox.Left = 12;
InfoTextBox.BorderStyle = BorderStyle.None;
InfoTextBox.Enabled = false;
// Obtains the project’s script routines
TestComplete.ItcScriptRoutine Routine = RoutinesIterator.Next;
InfoTextBox.Text = Routine.ProjectSuiteName + "\r\n" + Routine.ProjectSuiteFileName;
// Sets the iterator to the initial position
RoutinesIterator.Reset();
// Iterates through the project routines and adds information on them to the list view
while (RoutinesIterator.HasNext())
{
// Obtains the script routine
Routine = RoutinesIterator.Next;
// Adds project routine to the list
string name;
name = Routine.Name;
if (Routine.ParamCount != 0)
{
name = name + "(";
for (var i = 0; i < Routine.ParamCount - 1; i++)
{
name = name + Routine.get_ParamType(i) + " : " + Routine.get_ParamName(i) + "; ";
}
name = name + Routine.get_ParamType(Routine.ParamCount - 1) + " : " + Routine.get_ParamName(Routine.ParamCount - 1) + ")";
}
ListViewItem newitem = new ListViewItem(name, 0);
newitem.SubItems.Add(Routine.UnitName);
newitem.SubItems.Add(Routine.Language);
newitem.SubItems.Add(Routine.ProjectName);
newitem.SubItems.Add(Routine.ProjectFileName);
newitem.ToolTipText = Routine.ScriptFileName;
NewRoutinesList.Items.AddRange(new ListViewItem[] { newitem });
}
// Adds the list view to the form
this.Controls.Add(NewRoutinesList);
this.Controls.Add(InfoTextBox);
…
}
catch (System.Runtime.InteropServices.COMException ex)
{
System.Windows.Forms.MessageBox.Show("An exception occurred: " + ex.Message);
}
finally
{
TestCompleteManager.Quit();
// Releases COM objects
Marshal.ReleaseComObject(IntegrationObject);
Marshal.ReleaseComObject(TestCompleteManager);
Marshal.ReleaseComObject(TestCompleteObject);
}
}
}
using System.Runtime.InteropServices;
using TestComplete;
…
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_Connect_Click(object sender, EventArgs e)
{
const string TCProgID = "TestComplete.TestCompleteApplication.14";
object TestCompleteObject = null;
// Obtains access to TestComplete
try
{
TestCompleteObject = Marshal.GetActiveObject(TCProgID);
}
catch
{
try
{
TestCompleteObject = Activator.CreateInstance(Type.GetTypeFromProgID(TCProgID));
}
catch
{
}
}
if (TestCompleteObject == null) return;
// Obtains ITestCompleteCOMManager
TestComplete.ITestCompleteCOMManager TestCompleteManager = (TestComplete.ITestCompleteCOMManager) TestCompleteObject;
// Obtains Integration object
TestComplete.ItcIntegration IntegrationObject = TestCompleteManager.Integration;
// Loads the project suite
IntegrationObject.OpenProjectSuite("C:\\Work Folder\\TestSuite\\TestSuite.pjs");
// Checks whether the project suite was opened
// If the project suite cannot be opened, closes TestComplete
if (!IntegrationObject.IsProjectSuiteOpened())
{
System.Windows.Forms.MessageBox.Show("Could not open the project suite.");
// Closes TestComplete
TestCompleteManager.Quit();
// Releases COM objects
Marshal.ReleaseComObject(IntegrationObject);
Marshal.ReleaseComObject(TestCompleteManager);
Marshal.ReleaseComObject(TestCompleteObject);
return;
}
try
{
// Obtains script routines of the TestProject_VB project and displays their names
TestComplete.ItcEnumScriptRoutine RoutinesIterator = IntegrationObject.get_ProjectRoutinesIterator("TestProject_VB");
// Creates a list view that will display information on the project script routines
ListView NewRoutinesList = new ListView();
NewRoutinesList.View = View.Details;
NewRoutinesList.FullRowSelect = true;
NewRoutinesList.Sorting = SortOrder.Ascending;
NewRoutinesList.Size = new Size(400, 200);
NewRoutinesList.Top = 41;
NewRoutinesList.Left = 12;
// Create columns for the routines information
NewRoutinesList.Columns.Add("Routine");
NewRoutinesList.Columns.Add("Unit");
NewRoutinesList.Columns.Add("Language");
NewRoutinesList.Columns.Add("Project");
NewRoutinesList.Columns.Add("Project File");
NewRoutinesList.ShowItemToolTips = true;
// Creates a text box that will display information on the current project suite
RichTextBox InfoTextBox = new RichTextBox();
InfoTextBox.Size = new Size(400, 35);
InfoTextBox.Top = 300;
InfoTextBox.Left = 12;
InfoTextBox.BorderStyle = BorderStyle.None;
InfoTextBox.Enabled = false;
// Obtains the project’s script routines
TestComplete.ItcScriptRoutine Routine = RoutinesIterator.Next;
InfoTextBox.Text = Routine.ProjectSuiteName + "\r\n" + Routine.ProjectSuiteFileName;
// Sets the iterator to the initial position
RoutinesIterator.Reset();
// Iterates through the project routines and adds information on them to the list view
while (RoutinesIterator.HasNext())
{
// Obtains the script routine
Routine = RoutinesIterator.Next;
// Adds project routine to the list
string name;
name = Routine.Name;
if (Routine.ParamCount != 0)
{
name = name + "(";
for (var i = 0; i < Routine.ParamCount - 1; i++)
{
name = name + Routine.get_ParamType(i) + " : " + Routine.get_ParamName(i) + "; ";
}
name = name + Routine.get_ParamType(Routine.ParamCount - 1) + " : " + Routine.get_ParamName(Routine.ParamCount - 1) + ")";
}
ListViewItem newitem = new ListViewItem(name, 0);
newitem.SubItems.Add(Routine.UnitName);
newitem.SubItems.Add(Routine.Language);
newitem.SubItems.Add(Routine.ProjectName);
newitem.SubItems.Add(Routine.ProjectFileName);
newitem.ToolTipText = Routine.ScriptFileName;
NewRoutinesList.Items.AddRange(new ListViewItem[] { newitem });
}
// Adds the list view to the form
this.Controls.Add(NewRoutinesList);
this.Controls.Add(InfoTextBox);
…
}
catch (System.Runtime.InteropServices.COMException ex)
{
System.Windows.Forms.MessageBox.Show("An exception occurred: " + ex.Message);
}
finally
{
TestCompleteManager.Quit();
// Releases COM objects
Marshal.ReleaseComObject(IntegrationObject);
Marshal.ReleaseComObject(TestCompleteManager);
Marshal.ReleaseComObject(TestCompleteObject);
}
}
}
See Also
UnitName Property
ProjectFileName Property
ProjectSuiteFileName Property