Studio:Reporter: Difference between revisions

From STRIDE Wiki
Jump to navigation Jump to search
No edit summary
 
(59 intermediate revisions by 3 users not shown)
Line 3: Line 3:
The STRIDE Reporter allows you to track and report test cases for scripts, store test data in XML format, and produce HTML output for viewing of test case results.  
The STRIDE Reporter allows you to track and report test cases for scripts, store test data in XML format, and produce HTML output for viewing of test case results.  


The STRIDE Reporter tracks two primary objects: '''Suites '''and '''Test Cases''', which are further described as follows:  
The STRIDE Reporter tracks two primary objects: '''Suites '''and '''Tests ''', which are further described as follows:  


*A '''Suite '''is a collection of Test Cases and other Suites. A Suite has a name, a description, and zero (0) or more children, which can be either Test Cases or other sub Suites.  
*A [[#reporter.Suites.Item|suite]] is a collection of [[#reporter.Suites.Item.Tests.Item|tests]] and other suites. A suite has a name, a description and children suites and tests. Suites can also be populated with additional information in the form of [[#reporter.Suites.Item.Annotations|annotations]] and can have additional summary fields added via [[#reporter.Suites.Item.CustomData|custom data]].  
*A '''Test Case''' represents a single pass/fail item and it consists of a name, a description, any test data that is added during the lifetime of the TestCase, and a status. The status can be any one of the following:
*A [[#reporter.Suites.Item.Tests.Item|test]] represents a single pass/fail item and it consists of a name, a description, a duration, and a status. Tests can be populated with additional details using [[#reporter.Suites.Item.Tests.Item.Comments|comments]].
**PASS
**FAIL
**IN PROGRESS
**NOT APPLICABLE (or N/A)<br>


= Automation API<br>  =
= Automation API<br>  =


= <br>reporter<br>  =
== <br>reporter<br>  ==
 
This is the root level object.&nbsp; It provides directy access to the top level Suites collection as well as report generation and persistence methods.


{| width="100%" cellspacing="0" cellpadding="10" border="1"
{| width="100%" cellspacing="0" cellpadding="10" border="1"
Line 22: Line 20:
| bgcolor="#66ff99" | '''Description'''<br>
| bgcolor="#66ff99" | '''Description'''<br>
|-
|-
| width="150" |  
| width="150" valign="top" align="left" | '''Load '''(<br>&nbsp;&nbsp;&nbsp; string file<br>)  
'''Load '''(<br>&nbsp;&nbsp;&nbsp; string file<br>)<br>
| valign="top" align="left" | Method<br>  
 
| valign="top" align="left" | This method is a shortcut to [[#suites-load|reporter.Suites.Load()]].<br>
| width="150" valign="top" align="left" | Method<br>  
| width="150" valign="top" align="left" | Loads the results from a saved XML file. This method will '''''not''''' clear the current data in the reporter before loading the file. The file parameter is the full system path to the XML file to load.<br>
|-
|-
| width="150" | '''RemoveAll '''()<br>  
| width="150" valign="top" align="left" | '''RemoveAll '''()<br>  
| width="150" valign="top" align="left" | Method<br>  
| valign="top" align="left" | Method<br>  
| width="150" valign="top" align="left" | Removes all suites from the root level collection.&nbsp; This method is a shortcut to reporter.Suites.RemoveAll().<br>
| valign="top" align="left" | This method is a shortcut to [[#suites-removeall|reporter.Suites.RemoveAll()]].<br>
|-
|-
| width="150" | string '''MakeReport '''(<br>&nbsp;&nbsp;&nbsp; string file [optional],<br>&nbsp;&nbsp;&nbsp; bool linked [optional]<br>)<br>  
| width="150" valign="top" align="left" | string '''MakeReport '''(<br>&nbsp;&nbsp;&nbsp; string file [optional],<br>&nbsp;&nbsp;&nbsp; bool linked [optional]<br>)<br>  
| width="150" valign="top" | Method<br>  
| valign="top" | Method<br>  
| width="150" valign="top" | Builds an HTML report for all suites. A filename can be passed in so the HTML results can be written to that file -- otherwise, the default filename of SuiteReport.html is used. If a full path is not specified as part of the filename, the report is generated in the STRIDE installation directory. If the linked parameter is set to true, each suite will be shown as a link in the parent suite's report. This method is a shortcut to [[#suites-makereport|reporter.Suites.MakeReport()]].<br>  
| valign="top" | This method is a shortcut to [[#suites-makereport|reporter.Suites.MakeReport()]].<br>  
<br>  
<br>  


|-
|-
| width="150" | string '''Save '''(<br>&nbsp;&nbsp;&nbsp; string file<br>)  
| width="150" valign="top" align="left" | string '''Save '''(<br>&nbsp;&nbsp;&nbsp; string file<br>)  
| width="150" valign="top" | Method<br>  
| valign="top" | Method<br>  
| width="150" valign="top" | This method is a shortcut to [[#suites-save|reporter.Suites.Save()]].<br>
| valign="top" | This method is a shortcut to [[#suites-save|reporter.Suites.Save()]].<br>
|-
|-
| width="150" | '''ReportTemplate'''<br>  
| width="150" valign="top" align="left" | '''ReportTemplate'''<br>  
| width="150" valign="top" | Property,<br>string  
| valign="top" | Property,<br>string  
| width="150" valign="top" | Gets/sets the report template file to use when generating HTML reports.<br>
| valign="top" | Gets/sets the report template file to use when generating HTML reports.<br>
|-
|-
| width="150" | [[#reporter.Suites|Suites]]<br>  
| width="150" valign="top" align="left" | [[#reporter.Suites|Suites]]<br>  
| width="150" valign="top" | Object<br>  
| valign="top" | Object<br>  
| width="150" valign="top" | Top level Suites collection.<br>
| valign="top" | Top level Suites collection.<br>
|}
|}


== <br>reporter.Suites<br>  ==
== <br>reporter.Suites<br>  ==
The interface for a collection of suite objects.&nbsp; This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index.
{| cellspacing="0" cellpadding="10" border="1" width="100%"
|-
| bgcolor="#66ff99" align="left" width="150" valign="top" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item|object]]<span style="font-weight: bold;"> </span>'''Item '''(<br>&nbsp;&nbsp;&nbsp; index<br>)
| align="left" valign="top" | Method
| align="left" valign="top" | Returns the specified suite object.&nbsp; The index can be integer or string. When using a string index, If the specified item is not found, this method returns null.&nbsp; When using an integer index, an exception will be thrown if the requested index is out of range.<br>
|-
| align="left" width="150" valign="top" | '''Count'''
| align="left" valign="top" | Property,<br>integer<br>'''read-only'''
| align="left" valign="top" | Read only property that returns the number of suites in the collection.<br>
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item|object]] '''Add '''(<br>&nbsp;&nbsp;&nbsp; string name [optional]<br>)
| align="left" valign="top" | Method
| align="left" valign="top" | Creates a new suite in the collection.&nbsp; A name may be provided, but will default to TestSuite_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object or throws an exception if an object with the provided name already exists. Any name that contains path separation characters (forward or back slashes) will be treated as a suite path and trigger the creation all child suites represented by the path string.<br>
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item|object]] '''Remove '''(<br>&nbsp;&nbsp;&nbsp; index<br>)
| align="left" valign="top" | Method
| align="left" valign="top" | Removes a suite from the collection and returns a reference to the removed obejct.&nbsp; The index can be integer or string.&nbsp; If the specified string index is not found, nothing is removed and null is returned.&nbsp; If a provided integer index is out of range, an exception is thrown.<br>
|-
| align="left" width="150" valign="top" | <span id="suites-removeall">'''RemoveAll'''</span>()
| align="left" valign="top" | Method
| align="left" valign="top" | Empties the collection.<br>
|-
| align="left" width="150" valign="top" | <span id="suites-makereport">string</span> '''MakeReport '''(<br>&nbsp;&nbsp;&nbsp; string file [optional],<br>&nbsp;&nbsp;&nbsp; bool linked [optional]<br>)
| align="left" valign="top" | Method
| align="left" valign="top" | Builds an HTML report for all suites. A filename can be passed in so the HTML results can be written to that file -- otherwise, the default filename of ''SuiteReport.html'' is used. If a full path is not specified as part of the filename, the report is generated in the STRIDE installation directory. If the linked parameter is set to true (default is false), each suite will be shown as a link in the parent suite's report.<br>
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item|object]] '''Find '''(<br>&nbsp;&nbsp;&nbsp; string name,<br>&nbsp;&nbsp;&nbsp; bool depth [optional]<br>)
| align="left" valign="top" | Method
| align="left" valign="top" | Searches for a suite with the specified name and returns the object if found, null otherwise.&nbsp; If depth is set to true (the default), all sub-suites will also be searched in depth first order. If a name contains path separation characters (forward or back slash), this method attempts to find the corresponding child suites represented by the path.<br>
|-
| align="left" width="150" valign="top" | <span id="suites-save">string</span> '''Save '''(<br>&nbsp;&nbsp;&nbsp; string file [optional]<br>)
| align="left" valign="top" | Method
| align="left" valign="top" | Saves the collection's data (including all children) as XML.&nbsp; The persisted file is able to be read using the Load() method or can be upload to the STRIDE Portal. The file parameter, if provided, is the full system path to the file to create -- otherwise defaults to SuiteData.xml located in the STRIDE installation directory.<br>
|-
| align="left" width="150" valign="top" | <span id="suites-load">'''Load '''</span> (<br>&nbsp;&nbsp;&nbsp; string file<br>)
| align="left" valign="top" | Method
| align="left" valign="top" | Loads the results from a saved XML file. This method will '''not''' clear the current data in the collection before loading the file. The file parameter is the full system path to the XML file to load.<br>
|}
== <br>reporter.Suites.Item<br>  ==
The interface for suite objects. Individual suites hold collections of several types of child objects: [[#reporter.Suites|sub-suites]], [[#reporter.Suites.Item.Tests|tests]], [[#reporter.Suites.Item.Annotations|annotations]], and [[#reporter.Suites.Item.CustomData|custom data fields]].


{| width="100%" cellspacing="0" cellpadding="10" border="1"
{| width="100%" cellspacing="0" cellpadding="10" border="1"
Line 59: Line 104:
| bgcolor="#66ff99" | '''Description '''
| bgcolor="#66ff99" | '''Description '''
|-
|-
| width="150" valign="top" align="left" | suite '''Item '''(<br>&nbsp;&nbsp;&nbsp; index<br>)  
| width="150" valign="top" align="left" | [[#reporter.Suites|Suites]]
| valign="top" align="left" | Object
| valign="top" align="left" | Collection of sub-suites.
|-
| width="150" valign="top" align="left" | [[#reporter.Suites.Item.Tests|Tests]]
| valign="top" align="left" | Object
| valign="top" align="left" | Collection of Tests contained in the suite.
|-
| width="150" valign="top" align="left" | '''Name '''
| valign="top" align="left" | Property,<br>string
| valign="top" align="left" | Gets/sets the name of the suite.&nbsp; When setting the name, if another suite already exists with the same name, an exception will be thrown.
|-
| width="150" valign="top" align="left" | '''Description '''
| valign="top" align="left" | Property,<br>string
| valign="top" align="left" | Gets/sets the description for the suite. Supports URL markdown <ref name="markdown">These properties support MediaWiki markdown format for urls.  Specifically, text of the form <tt>[proto://URI]</tt> (where proto can be http, https, mailto, or ftp) will be munged so that a link is displayed when viewing in a browser.</ref>.<br>
|-
| width="150" valign="top" align="left" | string '''Save '''(<br>&nbsp;&nbsp;&nbsp; string file [optional]<br>)
| valign="top" align="left" | Method<br>
| valign="top" align="left" | Saves the suite's data (including all children) as XML. The persisted file is able to be read using the Load() method or can be upload to the STRIDE Portal. The file parameter, if provided, is the full system path to the file to create -- otherwise defaults to SuiteData.xml located in the STRIDE installation directory.<br>
|-
| width="150" valign="top" align="left" | '''Load '''(<br>&nbsp;&nbsp;&nbsp; string file<br>)
| valign="top" align="left" | Method<br>
| valign="top" align="left" | Loads the results from a saved XML file. This method will '''not '''clear the current data in the collection before loading the file. The file parameter is the full system path to the XML file to load.<br>
|-
| width="150" valign="top" align="left" | string '''MakeReport '''(<br>&nbsp;&nbsp;&nbsp; string file [optional],<br>&nbsp;&nbsp;&nbsp; bool linked [optional]<br>)
| valign="top" align="left" | Method<br>
| valign="top" align="left" | Builds an HTML report for the suite. A filename can be passed in so the HTML results can be written to that file -- otherwise, the default filename of SuiteReport.html is used. If a full path is not specified as part of the filename, the report is generated in the STRIDE installation directory. If the linked parameter is set to true (default is false), each suite will be shown as a link in the parent suite's report.<br>
|-
| width="150" valign="top" align="left" | '''Linked'''
| valign="top" align="left" | Property,<br>bool<br>
| valign="top" align="left" | Gets/sets the linked property of the suite, used only when generating reports.&nbsp; If true, this suite will be shown as a link in the parent suite's report.<br>
|-
| width="150" valign="top" align="left" | '''Parent'''
| valign="top" align="left" | Object<br>
| valign="top" align="left" | Returns a reference to the parent suite of the suite.&nbsp; If the suite is at the root level and thus has no parent, null is returned.<br>
|-
| width="150" valign="top" align="left" | '''Path'''
| valign="top" align="left" | Property,<br>string,<br>'''read-only'''<br>
| valign="top" align="left" | Read-only property that returns the full path of the suite, with each ancestor suite separated by a forward slash (/).<br>
|-
| width="150" valign="top" align="left" | [[#reporter.Suites.Item.Annotations|Annotations]]
| valign="top" align="left" | Object<br>
| valign="top" align="left" | Collection of annotations associated with the suite.<br>
|-
| width="150" valign="top" align="left" | [[#reporter.Suites.Item.CustomData|CustomData]]
| valign="top" align="left" | Object<br>
| valign="top" align="left" | Collection of CustomData fields associated with the suite.<br>
|}
 
== <br>reporter.Suites.Item.CustomData<br>  ==
 
The interface for a collection of custom data objects. This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index. <br>
 
{| width="100%" cellspacing="0" cellpadding="10" border="1"
|-
| width="150" valign="top" bgcolor="#66ff99" align="left" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| width="150" valign="top" align="left" | [[#reporter.Suites.Item.CustomData.Item|object]] <span style="font-weight: bold;"></span>'''Item '''(<br>&nbsp;&nbsp;&nbsp; index<br>)<br>
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | Returns the specified Suite object.&nbsp; The index can be integer or string.
| valign="top" align="left" | Returns the specified custom data object. The index can be integer or string. When using a string index, If the specified item is not found, this method returns null. When using an integer index, an exception will be thrown if the requested index is out of range.
|-
|-
| width="150" valign="top" align="left" | '''Count'''  
| width="150" valign="top" align="left" | '''Count'''  
| valign="top" align="left" | Property,<br>integer<br>Read-only
| valign="top" align="left" | Method
| valign="top" align="left" | <br>
| valign="top" align="left" | Read only property that returns the number of custom data fields in the collection.
|-
|-
| width="150" valign="top" align="left" | suite '''Add '''(<br>&nbsp;&nbsp;&nbsp; string name<br>)  
| width="150" valign="top" align="left" | [[#reporter.Suites.Item.CustomData.Item|object]] '''Add '''(<br>&nbsp;&nbsp;&nbsp; string name [optional]<br>)  
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | <br>
| valign="top" align="left" | Creates a new custom data object in the collection. A name may be provided, but will default to CustomData_# where # is chosen as 1 greater than the current Count of the collection. Returns the created object or throws an exception if an item with the specified name already exists.<br>
|-
|-
| width="150" valign="top" align="left" | suite '''Remove '''(<br>&nbsp;&nbsp;&nbsp; index<br>)  
| width="150" valign="top" align="left" | [[#reporter.Suites.Item.CustomData.Item|object]] '''Remove '''(<br>&nbsp;&nbsp;&nbsp; index<br>)<br>
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | <br>
| valign="top" align="left" | Removes a custom data object from the collection and returns a reference to the removed object. The index can be integer or string. If the specified string index is not found, nothing is removed and null is returned. If a provided integer index is out of range, an exception is thrown.
|-
|-
| width="150" valign="top" align="left" | '''RemoveAll'''()  
| width="150" valign="top" align="left" | '''RemoveAll '''()  
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | <br>
| valign="top" align="left" | Empties the collection.<br>
|}
 
== <br>reporter.Suites.Item.CustomData.Item<br>  ==
 
The interface for a custom data field. Custom data objects allow users to extend the summary fields that are displayed for a suite.&nbsp; These fields will be shown in the suite summary table following the Name, Description and Start Time fields.
 
{| width="100%" cellspacing="0" cellpadding="10" border="1"
|-
| width="150" valign="top" bgcolor="#66ff99" align="left" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| width="150" valign="top" align="left" | '''Name'''
| valign="top" align="left" | Property,<br>string
| valign="top" align="left" | Gets/sets the name of the custom data field.<br>
|-
| width="150" valign="top" align="left" | '''Value'''
| valign="top" align="left" | Property,<br>string
| valign="top" align="left" | Gets/sets the value of the custom data field. Supports URL markdown <ref name="markdown" />.<br>
|}
 
== <br>reporter.Suites.Item.Annotations<br>  ==
 
The interface for a collection of annotations. This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index. <br>
 
{| width="100%" cellspacing="0" cellpadding="10" border="1"
|-
| width="150" valign="top" bgcolor="#66ff99" align="left" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| width="150" valign="top" align="left" | object '''Item '''(<br>&nbsp;&nbsp;&nbsp; index<br>)<br>
| valign="top" align="left" | Method<br>
| valign="top" align="left" | Returns the specified annotation object. The index can be integer or string. When using a string index, If the specified item is not found, this method returns null. When using an integer index, an exception will be thrown if the requested index is out of range.
|-
|-
| width="150" valign="top" align="left" | <span id="suites-makereport">string</span> '''MakeReport '''(<br>&nbsp;&nbsp;&nbsp; string file [optional],<br>&nbsp;&nbsp;&nbsp; bool linked [optional]<br>)
| width="150" valign="top" align="left" | '''Count'''  
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | <br>
| valign="top" align="left" | Read only property that returns the number of annotations in the collection.
|-
|-
| width="150" valign="top" align="left" | suite '''Find '''(<br>&nbsp;&nbsp;&nbsp; string name,<br>&nbsp;&nbsp;&nbsp; bool depth [optional]<br>)  
| width="150" valign="top" align="left" | object '''Add '''(<br>&nbsp;&nbsp;&nbsp; string name [optional]<br>)<br>
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | <br>
| valign="top" align="left" | Creates a new annotation in the collection. A name may be provided, but will default to Annotation_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object or throws an exception if an item with the specified name already exists.
|-
|-
| width="150" valign="top" align="left" | string '''Save '''(<br>&nbsp;&nbsp;&nbsp; string file<br>)  
| width="150" valign="top" align="left" | object '''Remove '''(<br>&nbsp;&nbsp;&nbsp; index<br>)<br>
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | <br>
| valign="top" align="left" | Removes an annotation from the collection and returns a reference to the removed object. The index can be integer or string. If the specified string index is not found, nothing is removed and null is returned. If a provided integer index is out of range, an exception is thrown.
|-
|-
| width="150" valign="top" align="left" | '''Load '''(<br>&nbsp;&nbsp;&nbsp; string file<br>)
| width="150" valign="top" align="left" | '''RemoveAll '''()<br>  
| valign="top" align="left" | Method  
| valign="top" align="left" | Method  
| valign="top" align="left" | <br>
| valign="top" align="left" | Empties the collection.<br>
|}
|}


== <br>reporter.Suites.Item<br>  ==
== <br>reporter.Suites.Item.Annotations.Item<br>  ==
 
The interface for annotations. Annotations provide a means to attach additional information to a suite.&nbsp; They consist of a name, a description, and a level.&nbsp; The level corresponds to the default log levels in the [http://log4cplus.sourceforge.net/docs/html/loglevel_8h-source.html log4cplus project]. Annotations can optionally contain a file attachment, which is useful for bundling data related to a suite in the report (e.g. screenshot images, or log files).


== <br>reporter.Suites.Item.CustomData<br> ==
{| cellspacing="0" cellpadding="10" border="1" width="100%"
|-
| bgcolor="#66ff99" align="left" width="150" valign="top" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| align="left" width="150" valign="top" | '''Name'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the name of the annotation. When setting the name, if another item already exists in the collection with the same name, an exception will be thrown.<br>
|-
| align="left" width="150" valign="top" | '''Description'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the annotation's description.&nbsp; Supports URL markdown<ref name="markdown" />.<br>
|-
| align="left" width="150" valign="top" | '''Level'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the level of the annotation.&nbsp; This property can be one of the following:
*FATAL
*ERROR
*WARN
*INFO
*DEBUG
*TRACE


== <br>reporter.Suites.Item.CustomData.Item<br> ==
|-
| align="left" width="150" valign="top" | '''File'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the optional file to attach to this annotation.&nbsp; This can be a local system path to a file or a URL ('''http: '''or '''ftp:''').&nbsp; When this property is set, the file will be read from the source.<br>
|-
| align="left" width="150" valign="top" | '''MIMEType'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the MIME type associated with the file.&nbsp; This allows users to override the default MIME type detection based on extension.<br>
|-
| align="left" width="150" valign="top" | '''FileName'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the filename to use for the annotation file.&nbsp; This is the name of the file that will be provided back to the user when the annotation file is downloaded via the STRIDE Portal.<br>
|-
| align="left" width="150" valign="top" | '''LinkFile'''
| align="left" valign="top" | Property,<br>bool
| align="left" valign="top" | Gets/sets the LinkFile property for the annotation.&nbsp; This property, if true, indicates that the contents of File should NOT be embedded in the reporter XML (i.e. the file should not be copied from the source).&nbsp; If true, the STRIDE Portal and HTML reports will display the file annotation as an external link to the source set in the File property.&nbsp; The default value is false.<br>
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item.Comments|Comments]]
| align="left" valign="top" | Object
| align="left" valign="top" | Collection of comments for the annotation.<br>
|}


== <br>reporter.Suites.Item.Annotations<br>  ==
== <br>reporter.Suites.Item.Tests<br>  ==


== <br>reporter.Suites.Item.Annotations.Item<br> ==
The interface for a collection of tests. This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index.<br>


== <br>reporter.Suites.Item.Tests<br> ==
{| cellspacing="0" cellpadding="10" border="1" width="100%"
|-
| bgcolor="#66ff99" align="left" width="150" valign="top" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item|object]] '''Item '''(<br>&nbsp;&nbsp;&nbsp; index<br>)<br>
| align="left" valign="top" | Method
| align="left" valign="top" | Returns the specified test object. The index can be integer or string. When using a string index, If the specified item is not found, this method returns null. When using an integer index, an exception will be thrown if the requested index is out of range.
|-
| align="left" width="150" valign="top" | '''Count'''
| align="left" valign="top" | Method
| align="left" valign="top" | Read only property that returns the number of tests in the collection.
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item|object]] '''Add '''(<br>&nbsp;&nbsp;&nbsp; string name<br>)<br>  
| align="left" valign="top" | Method
| align="left" valign="top" | Creates a new test in the collection. A name may be provided, but will default to TestCase_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object or throws an exception if an object with the provided name already exists.
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item|object]] '''Remove '''(<br>&nbsp;&nbsp;&nbsp; index<br>)<br>
| align="left" valign="top" | Method
| align="left" valign="top" | Removes a test from the collection and returns a reference to the removed obejct. The index can be integer or string. If the specified string index is not found, nothing is removed and null is returned. If a provided integer index is out of range, an exception is thrown.
|-
| align="left" width="150" valign="top" | '''RemoveAll '''()<br>
| align="left" valign="top" | Method
| align="left" valign="top" | Empties the collection.<br>
|}


== <br>reporter.Suites.Item.Tests.Item<br>  ==
== <br>reporter.Suites.Item.Tests.Item<br>  ==
The interface for test objects.&nbsp; Tests comprise a name, a description, a duration, and a status. Tests can also have an optional metric value associated with them (and corresponding label) as well as one or more [[#reporter.Suites.Item.Tests.Item.Comments|comments]].<br>
{| cellspacing="0" cellpadding="10" border="1" width="100%"
|-
| bgcolor="#66ff99" align="left" width="150" valign="top" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item.Comments|Comments]]
| align="left" valign="top" | Object
| align="left" valign="top" | Collection of comments for this test.<br>
|-
| align="left" width="150" valign="top" | '''Name'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the name of the test. When setting the name, if another item already exists in the collection with the same name, an exception will be thrown.<br>
|-
| align="left" width="150" valign="top" | '''Description'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the test's description. Supports URL markdown<ref name="markdown" />.
|-
| align="left" width="150" valign="top" | '''Status'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the status of the annotation. This property can assigned one of the following:
*the string values (case insensitive) "PASS"<ref>"TRUE" is supported as a synonym for "PASS"</ref>, "FAIL"<ref>"FALSE" is supported as a synonym for "FAIL"</ref>, "IN PROGRESS", or "N/A"<ref>"NOT APPLICABLE" and "NOT IN USE" are also supported as synonyms for "N/A"</ref>
*a boolean value of true or false
*an integer value (0 implies PASS, nonzero implies FAIL)
|-
| align="left" width="150" valign="top" | '''Parent'''
| align="left" valign="top" | Object
| align="left" valign="top" | Returns the parent suite object for this test.<br>
|-
| align="left" width="150" valign="top" | '''Path'''
| align="left" valign="top" | Property,<br>string,<br>read-only
| align="left" valign="top" | Read-only property that returns the full path of the test, with each ancestor suite separated by a forward slash (/).
|-
| align="left" width="150" valign="top" | '''Duration'''
| align="left" valign="top" | Property,<br>double
| align="left" valign="top" | Gets/sets the duration of the test in milliseconds.&nbsp; If this value is not explicitly set by the user, it will default to the elapsed time from creation to the last time the Status value was updated.<br>
|-
| align="left" width="150" valign="top" | '''Metric'''
| align="left" valign="top" | Property,<br>double
| align="left" valign="top" | Gets/sets the secondary metric value for the test.&nbsp; This value is a generic floating point value that can be associated with the test, but it has no inherent units.&nbsp; An implied units label can be set using the MetricUnits property.<br>
|-
| align="left" width="150" valign="top" | '''MetricUnits'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the secondary metric value label.&nbsp; This value is for report display only and does not affect the actual values stored in Metric, if any.<br>
|}


== <br>reporter.Suites.Item.Tests.Item.Comments<br>  ==
== <br>reporter.Suites.Item.Tests.Item.Comments<br>  ==
The interface for a collection of comments. This collection does NOT require uniquely labeled items (multiple items can have the same label). Because of this, items in the collection can only be accessed by numerical index.<br>
{| cellspacing="0" cellpadding="10" border="1" width="100%"
|-
| bgcolor="#66ff99" align="left" width="150" valign="top" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item.Comments.Item|object]] '''Item '''(<br>&nbsp;&nbsp;&nbsp; integer index<br>)<br>
| align="left" valign="top" | Method
| align="left" valign="top" | Returns the specified comment object. Since this collection does not enforce name uniqueness, the index can be integer only. An exception will be thrown if the requested index is out of range.
|-
| align="left" width="150" valign="top" | '''Count'''
| align="left" valign="top" | Method
| align="left" valign="top" | Read only property that returns the number of comments in the collection.
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item.Comments.Item|object]] '''Add '''(<br>&nbsp;&nbsp;&nbsp; string label<br>)<br>
| align="left" valign="top" | Method
| align="left" valign="top" | Creates a new comment in the collection. A label may be provided, but will default to Comment_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object.
|-
| align="left" width="150" valign="top" | [[#reporter.Suites.Item.Tests.Item.Comments.Item|object]] '''Remove '''(<br>&nbsp;&nbsp;&nbsp; integer index<br>)<br>
| align="left" valign="top" | Method
| align="left" valign="top" | Removes a comment from the collection and returns a reference to the removed obejct. The index can be integer only. If a provided integer index is out of range, an exception is thrown.
|-
| align="left" width="150" valign="top" | '''RemoveAll '''()<br>
| align="left" valign="top" | Method
| align="left" valign="top" | Empties the collection
|}


== <br>reporter.Suites.Item.Tests.Item.Comments.Item<br>  ==
== <br>reporter.Suites.Item.Tests.Item.Comments.Item<br>  ==


== <br><br>  ==
The interface for comment objects.&nbsp; Comments are simple child objects of tests that provide a means for adding additional information to the test case.&nbsp; Comments are displayed as child rows for each test case.
 
{| cellspacing="0" cellpadding="10" border="1" width="100%"
|-
| bgcolor="#66ff99" align="left" width="150" valign="top" | '''Member '''
| bgcolor="#66ff99" | '''Type '''
| bgcolor="#66ff99" | '''Description '''
|-
| align="left" width="150" valign="top" | '''Label'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the label for the comment.<br>
|-
| align="left" width="150" valign="top" | '''Comment'''
| align="left" valign="top" | Property,<br>string
| align="left" valign="top" | Gets/sets the comment text for the comment object. Supports URL markdown<ref name="markdown" />.<br>
|}
 
= Notes =
 
<references />


<br>
[[Category: Studio]]

Latest revision as of 21:26, 18 August 2009

Introduction

The STRIDE Reporter allows you to track and report test cases for scripts, store test data in XML format, and produce HTML output for viewing of test case results.

The STRIDE Reporter tracks two primary objects: Suites and Tests , which are further described as follows:

  • A suite is a collection of tests and other suites. A suite has a name, a description and children suites and tests. Suites can also be populated with additional information in the form of annotations and can have additional summary fields added via custom data.
  • A test represents a single pass/fail item and it consists of a name, a description, a duration, and a status. Tests can be populated with additional details using comments.

Automation API


reporter

This is the root level object.  It provides directy access to the top level Suites collection as well as report generation and persistence methods.

Member
Type
Description
Load (
    string file
)
Method
This method is a shortcut to reporter.Suites.Load().
RemoveAll ()
Method
This method is a shortcut to reporter.Suites.RemoveAll().
string MakeReport (
    string file [optional],
    bool linked [optional]
)
Method
This method is a shortcut to reporter.Suites.MakeReport().


string Save (
    string file
)
Method
This method is a shortcut to reporter.Suites.Save().
ReportTemplate
Property,
string
Gets/sets the report template file to use when generating HTML reports.
Suites
Object
Top level Suites collection.


reporter.Suites

The interface for a collection of suite objects.  This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index.

Member Type Description
object Item (
    index
)
Method Returns the specified suite object.  The index can be integer or string. When using a string index, If the specified item is not found, this method returns null.  When using an integer index, an exception will be thrown if the requested index is out of range.
Count Property,
integer
read-only
Read only property that returns the number of suites in the collection.
object Add (
    string name [optional]
)
Method Creates a new suite in the collection.  A name may be provided, but will default to TestSuite_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object or throws an exception if an object with the provided name already exists. Any name that contains path separation characters (forward or back slashes) will be treated as a suite path and trigger the creation all child suites represented by the path string.
object Remove (
    index
)
Method Removes a suite from the collection and returns a reference to the removed obejct.  The index can be integer or string.  If the specified string index is not found, nothing is removed and null is returned.  If a provided integer index is out of range, an exception is thrown.
RemoveAll() Method Empties the collection.
string MakeReport (
    string file [optional],
    bool linked [optional]
)
Method Builds an HTML report for all suites. A filename can be passed in so the HTML results can be written to that file -- otherwise, the default filename of SuiteReport.html is used. If a full path is not specified as part of the filename, the report is generated in the STRIDE installation directory. If the linked parameter is set to true (default is false), each suite will be shown as a link in the parent suite's report.
object Find (
    string name,
    bool depth [optional]
)
Method Searches for a suite with the specified name and returns the object if found, null otherwise.  If depth is set to true (the default), all sub-suites will also be searched in depth first order. If a name contains path separation characters (forward or back slash), this method attempts to find the corresponding child suites represented by the path.
string Save (
    string file [optional]
)
Method Saves the collection's data (including all children) as XML.  The persisted file is able to be read using the Load() method or can be upload to the STRIDE Portal. The file parameter, if provided, is the full system path to the file to create -- otherwise defaults to SuiteData.xml located in the STRIDE installation directory.
Load (
    string file
)
Method Loads the results from a saved XML file. This method will not clear the current data in the collection before loading the file. The file parameter is the full system path to the XML file to load.


reporter.Suites.Item

The interface for suite objects. Individual suites hold collections of several types of child objects: sub-suites, tests, annotations, and custom data fields.

Member Type Description
Suites Object Collection of sub-suites.
Tests Object Collection of Tests contained in the suite.
Name Property,
string
Gets/sets the name of the suite.  When setting the name, if another suite already exists with the same name, an exception will be thrown.
Description Property,
string
Gets/sets the description for the suite. Supports URL markdown [1].
string Save (
    string file [optional]
)
Method
Saves the suite's data (including all children) as XML. The persisted file is able to be read using the Load() method or can be upload to the STRIDE Portal. The file parameter, if provided, is the full system path to the file to create -- otherwise defaults to SuiteData.xml located in the STRIDE installation directory.
Load (
    string file
)
Method
Loads the results from a saved XML file. This method will not clear the current data in the collection before loading the file. The file parameter is the full system path to the XML file to load.
string MakeReport (
    string file [optional],
    bool linked [optional]
)
Method
Builds an HTML report for the suite. A filename can be passed in so the HTML results can be written to that file -- otherwise, the default filename of SuiteReport.html is used. If a full path is not specified as part of the filename, the report is generated in the STRIDE installation directory. If the linked parameter is set to true (default is false), each suite will be shown as a link in the parent suite's report.
Linked Property,
bool
Gets/sets the linked property of the suite, used only when generating reports.  If true, this suite will be shown as a link in the parent suite's report.
Parent Object
Returns a reference to the parent suite of the suite.  If the suite is at the root level and thus has no parent, null is returned.
Path Property,
string,
read-only
Read-only property that returns the full path of the suite, with each ancestor suite separated by a forward slash (/).
Annotations Object
Collection of annotations associated with the suite.
CustomData Object
Collection of CustomData fields associated with the suite.


reporter.Suites.Item.CustomData

The interface for a collection of custom data objects. This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index.

Member Type Description
object Item (
    index
)
Method Returns the specified custom data object. The index can be integer or string. When using a string index, If the specified item is not found, this method returns null. When using an integer index, an exception will be thrown if the requested index is out of range.
Count Method Read only property that returns the number of custom data fields in the collection.
object Add (
    string name [optional]
)
Method Creates a new custom data object in the collection. A name may be provided, but will default to CustomData_# where # is chosen as 1 greater than the current Count of the collection. Returns the created object or throws an exception if an item with the specified name already exists.
object Remove (
    index
)
Method Removes a custom data object from the collection and returns a reference to the removed object. The index can be integer or string. If the specified string index is not found, nothing is removed and null is returned. If a provided integer index is out of range, an exception is thrown.
RemoveAll () Method Empties the collection.


reporter.Suites.Item.CustomData.Item

The interface for a custom data field. Custom data objects allow users to extend the summary fields that are displayed for a suite.  These fields will be shown in the suite summary table following the Name, Description and Start Time fields.

Member Type Description
Name Property,
string
Gets/sets the name of the custom data field.
Value Property,
string
Gets/sets the value of the custom data field. Supports URL markdown [1].


reporter.Suites.Item.Annotations

The interface for a collection of annotations. This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index.

Member Type Description
object Item (
    index
)
Method
Returns the specified annotation object. The index can be integer or string. When using a string index, If the specified item is not found, this method returns null. When using an integer index, an exception will be thrown if the requested index is out of range.
Count Method Read only property that returns the number of annotations in the collection.
object Add (
    string name [optional]
)
Method Creates a new annotation in the collection. A name may be provided, but will default to Annotation_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object or throws an exception if an item with the specified name already exists.
object Remove (
    index
)
Method Removes an annotation from the collection and returns a reference to the removed object. The index can be integer or string. If the specified string index is not found, nothing is removed and null is returned. If a provided integer index is out of range, an exception is thrown.
RemoveAll ()
Method Empties the collection.


reporter.Suites.Item.Annotations.Item

The interface for annotations. Annotations provide a means to attach additional information to a suite.  They consist of a name, a description, and a level.  The level corresponds to the default log levels in the log4cplus project. Annotations can optionally contain a file attachment, which is useful for bundling data related to a suite in the report (e.g. screenshot images, or log files).

Member Type Description
Name Property,
string
Gets/sets the name of the annotation. When setting the name, if another item already exists in the collection with the same name, an exception will be thrown.
Description Property,
string
Gets/sets the annotation's description.  Supports URL markdown[1].
Level Property,
string
Gets/sets the level of the annotation.  This property can be one of the following:
  • FATAL
  • ERROR
  • WARN
  • INFO
  • DEBUG
  • TRACE
File Property,
string
Gets/sets the optional file to attach to this annotation.  This can be a local system path to a file or a URL (http: or ftp:).  When this property is set, the file will be read from the source.
MIMEType Property,
string
Gets/sets the MIME type associated with the file.  This allows users to override the default MIME type detection based on extension.
FileName Property,
string
Gets/sets the filename to use for the annotation file.  This is the name of the file that will be provided back to the user when the annotation file is downloaded via the STRIDE Portal.
LinkFile Property,
bool
Gets/sets the LinkFile property for the annotation.  This property, if true, indicates that the contents of File should NOT be embedded in the reporter XML (i.e. the file should not be copied from the source).  If true, the STRIDE Portal and HTML reports will display the file annotation as an external link to the source set in the File property.  The default value is false.
Comments Object Collection of comments for the annotation.


reporter.Suites.Item.Tests

The interface for a collection of tests. This collection requires uniquely named objects (case insensitive) and items can be accessed by name or numerical index.

Member Type Description
object Item (
    index
)
Method Returns the specified test object. The index can be integer or string. When using a string index, If the specified item is not found, this method returns null. When using an integer index, an exception will be thrown if the requested index is out of range.
Count Method Read only property that returns the number of tests in the collection.
object Add (
    string name
)
Method Creates a new test in the collection. A name may be provided, but will default to TestCase_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object or throws an exception if an object with the provided name already exists.
object Remove (
    index
)
Method Removes a test from the collection and returns a reference to the removed obejct. The index can be integer or string. If the specified string index is not found, nothing is removed and null is returned. If a provided integer index is out of range, an exception is thrown.
RemoveAll ()
Method Empties the collection.


reporter.Suites.Item.Tests.Item

The interface for test objects.  Tests comprise a name, a description, a duration, and a status. Tests can also have an optional metric value associated with them (and corresponding label) as well as one or more comments.

Member Type Description
Comments Object Collection of comments for this test.
Name Property,
string
Gets/sets the name of the test. When setting the name, if another item already exists in the collection with the same name, an exception will be thrown.
Description Property,
string
Gets/sets the test's description. Supports URL markdown[1].
Status Property,
string
Gets/sets the status of the annotation. This property can assigned one of the following:
  • the string values (case insensitive) "PASS"[2], "FAIL"[3], "IN PROGRESS", or "N/A"[4]
  • a boolean value of true or false
  • an integer value (0 implies PASS, nonzero implies FAIL)
Parent Object Returns the parent suite object for this test.
Path Property,
string,
read-only
Read-only property that returns the full path of the test, with each ancestor suite separated by a forward slash (/).
Duration Property,
double
Gets/sets the duration of the test in milliseconds.  If this value is not explicitly set by the user, it will default to the elapsed time from creation to the last time the Status value was updated.
Metric Property,
double
Gets/sets the secondary metric value for the test.  This value is a generic floating point value that can be associated with the test, but it has no inherent units.  An implied units label can be set using the MetricUnits property.
MetricUnits Property,
string
Gets/sets the secondary metric value label.  This value is for report display only and does not affect the actual values stored in Metric, if any.


reporter.Suites.Item.Tests.Item.Comments

The interface for a collection of comments. This collection does NOT require uniquely labeled items (multiple items can have the same label). Because of this, items in the collection can only be accessed by numerical index.

Member Type Description
object Item (
    integer index
)
Method Returns the specified comment object. Since this collection does not enforce name uniqueness, the index can be integer only. An exception will be thrown if the requested index is out of range.
Count Method Read only property that returns the number of comments in the collection.
object Add (
    string label
)
Method Creates a new comment in the collection. A label may be provided, but will default to Comment_# where # is chosen as 1 greater than the current Count of the collection. Returns the new object.
object Remove (
    integer index
)
Method Removes a comment from the collection and returns a reference to the removed obejct. The index can be integer only. If a provided integer index is out of range, an exception is thrown.
RemoveAll ()
Method Empties the collection


reporter.Suites.Item.Tests.Item.Comments.Item

The interface for comment objects.  Comments are simple child objects of tests that provide a means for adding additional information to the test case.  Comments are displayed as child rows for each test case.

Member Type Description
Label Property,
string
Gets/sets the label for the comment.
Comment Property,
string
Gets/sets the comment text for the comment object. Supports URL markdown[1].

Notes

  1. 1.0 1.1 1.2 1.3 1.4 These properties support MediaWiki markdown format for urls. Specifically, text of the form [proto://URI] (where proto can be http, https, mailto, or ftp) will be munged so that a link is displayed when viewing in a browser.
  2. "TRUE" is supported as a synonym for "PASS"
  3. "FALSE" is supported as a synonym for "FAIL"
  4. "NOT APPLICABLE" and "NOT IN USE" are also supported as synonyms for "N/A"