TestComplete 4 Sneak Peek - Log and Project File Formats Part 4

In part 4 of this blog I am discussing the Project Suite file structure (.pjs).


As mentioned in part 2, the Log files are not the only files that have the "open" XML formatting. All of the project files also have this format. So without further delay, lets get started.


Project File Structure (.pjs)


The file structure includes the following fields that are stored in the root section:

  • The key field contains the key of the ProjectSuite.
  • The signature field contains the identifier of the file’s type.
  • The version field contains the version of the file’s data format.

    For example:


    The child list section contains information about child elements. Information about each child element is in a separate subsection. The subsection name is in the item%d format. Subsections contain the following data:


  • The subsection item data contains PersistentInfo, which is saved by a child element. For a child element of the Project type it contains the relpath field, which contains the relative path to the file of the child element.
  • The type field contains the child element type.
  • The typename field contains a string representation of the child element type.
  • The key field contains the key of the child element.
  • The index field contains the ordinal number of the child element.

    Here is an example of the child list section, which contains one child element:


    The test data section contains data of the Test Items type:


  • The key field contains a unique data identifier.
  • The child list section contains a list of subsections for each element of a data type. The subsection name is in the item%d format. Subsections contain the following data:

    • The key field contains the element key.
    • The index field contains the ordinal number of the element.
    • The enabled field contains the Enabled value.
    • The timeout field contains the Timeout value.
    • The stoponerror field contains the Stop on error value.

    Here is an example of the test data section, which contains one element:


    Below are the similarities between fields of the test data section and the columns of the "Test Items" panel of the project editors.

  • Enabled column - enabled field, Boolean type (-1 : True / 0 : False)
  • Stop on error column - stoponerror field, Boolean type (-1 : True / 0 : False)
  • Timeout column - timeout field, Integer type >=0
  • Description column - description field, WideString type

    To restore the sequence of tree elements in a given editor, the following fields are used:

  • Index field, Integer type >=0 - specifies the sequence of records at a given level.
  • Key field - contains the text representation of the key used to search for a real object.


    For the Name and Location columns, values are calculated at runtime.


    To determine the type of a value specified in a property, refer to the type attribute of this property:



    Type can be any of the following values:


  • S - WideString
  • B - Boolean (the "value" attribute can have the following values: "-1" for True, and "0" for False)
  • I - Integer
  • D - Double
  • H - Binary Data
  • L - Int64


    The variables section contains data of the Variables type:


  • The key field contains a unique data identifier.
  • Other data is formed by the Variables subsystem.

    Here is an example of the variables section without elements:


    The analysis section contains data of the Analysis type (the project needs it to become a container for child Analysis elements):


  • The key field contains a unique data identifier.

    Here is an example of the analysis section:


    The scc section contains data of the SCC category:


  • Other data is formed by the Source Code Control subsystem.

    Here's an example of an empty scc section:


    The settings section contains data of the Properties type:


  • The key field contains a unique data identifier.
  • Other data is formed by the Project Node Settings manager.

    Here's an example of the settings section:


    The section "{ad15e706-6678-496b-b1e9-d449218ec403}" contains data of the ProjectSuiteExtender. The ProjectSuiteExtender holds its data in the main file of the project suite along with a key that is the section name (in our case, the name is Visualizer). The data stored in this section is generated by ProjectSuiteExtender.

    Here's an example of the {ad15e706-6678-496b-b1e9-d449218ec403} section:


    This concludes my four part segment on the Log and Project file structures. Stay tuned for more information on TestComplete 4 and other products developed by AutomatedQA.


  • Close

    By submitting this form, you agree to our
    Terms of Use and Privacy Policy

    Thanks for Subscribing

    Keep an eye on your inbox for more great content.

    Continue Reading

    Add a little SmartBear to your life

    Stay on top of your Software game with the latest developer tips, best practices and news, delivered straight to your inbox