Migrating Projects Created in Earlier Versions to TestComplete 15

Applies to TestComplete 15.70, last modified on December 11, 2024

When you open a test project or a project suite created in an earlier version of TestComplete for the first time, TestComplete offers to convert the project to the new format. You need to convert projects to work with them in TestComplete and use the new automated testing features. This topic explains how to convert projects and what you need to do before and after that.

In This Topic

General Information

Each new version of TestComplete includes new features – project items, project properties and so on. As a result, projects created in earlier TestComplete versions must be converted to the current TestComplete format before you can continue working with them. TestComplete can convert projects created in previous versions automatically when you open them.

TestComplete converts projects “in place”, that is, updates the project files. This is a one-way process: the converted projects cannot be opened in earlier TestComplete versions. When you convert a project suite, all the projects of this suite are converted.

After converting projects, you may also want to update your tests to use the new TestComplete functionality – new keyword test operations, scripting methods and so on. To learn about the new features, see What's New in TestComplete 15.70 and Version History.

Before Upgrading Projects

  • Important: If you do not use source control, make a backup copy of your project or project suite in a different folder. Remember that converted projects cannot be opened in earlier TestComplete versions.

    To create a backup, you can copy your project or project suite files and folder to another location. You can do this with Windows Explorer or with any other file manager. In addition, TestComplete suggests creating a backup copy automatically when you open a legacy project (see below).

  • If you use source control:

    • If you are going to use TestComplete 15 along with an earlier TestComplete version, create a new branch in the repository for the TestComplete 15 version of the project.

    • Check out the project (project suite) you want to upgrade. Make sure that no files have the read-only attribute or are exclusively checked out by other users.

  • Export your custom options (from Tools > Options), default project properties (Tools > Default Project Properties) and name mapping templates from an earlier TestComplete version and import them to TestComplete. For more information, see Exporting and Importing Custom User Settings.

    Note: Project and project suite properties are preserved during the project conversion.
  • Install your custom script extensions with keyword test operations into TestComplete 15. Without the necessary script extensions, the data of custom keyword test operations may be lost during the project upgrade.

How to Upgrade Projects

Upgrading Projects Interactively

To upgrade your test project to the current TestComplete format:

  1. Open the project in TestComplete.

  2. TestComplete will show a message informing you that it is about to convert your project to the new format and asking for your approval.

  3. If you have not created a backup of your project, click Backup and Convert (recommended).

    A project can include references to project items that are located outside of your project folder. For instance, your project can refer to a keyword test or script unit that belongs to another project suite. TestComplete converts these “external“ project items to make the new project functional. However, it does not create a backup copy of them. You have to back up these items manually. Otherwise, you will not be able to open them in earlier TestComplete versions.

    If you do not need a backup copy of your project, click Convert.

  4. TestComplete will convert the project to the new format and open it.

Depending on the project structure and on the TestComplete version in which the project was created, you may need to make additional changes to your project. See the upgrade notes below.

Some notes for source control users:

  • When converting a project that was bound to source control, TestComplete asks you to specify the information needed for connecting to the source control system and working with the project (such as the user name, password and the project folder).

  • The upgraded project may include new project items and files. If you use source control, select the Bind new items to SCC automatically option in Tools > Options > Source Control to add these files to source control. You can also add new files to source control manually (see Binding Test Projects to Source Control (Legacy)).

  • Earlier versions of TestComplete worked with source control systems via SCC API Providers. These APIs are compatible with a wide number of source control systems, however they offer a mediocre level of integration.

    Starting from version 11, TestComplete has dedicated plugins which provide a higher level of integration with Subversion, Git, and Mercurial.

    If you store your projects in these source control systems, we recommend that you use newer plugins instead of the legacy SCC API Providers. To learn how to switch a source control provider after the project was converted, see Migrating From Legacy SCC API Providers.

Upgrading Projects From the Command Line

If you run test projects on a schedule or from a continuous integration system, you can convert them to the TestComplete 15 format automatically. To do this, specify the /SilentMode and /ForceConversion arguments for TestComplete 15.

TestComplete 15 will not run unconverted projects.

Upgrade Notes

Database table checkpoints

In TestComplete versions prior to version 14.74, items of the Stores > DBTables collection stored baseline data for database checkpoints in the binary format. Starting from TestComplete version 14.74, they store the data in the XML format.

When you open projects created in an earlier TestComplete version, it will suggest converting existing DBTables items to the new format. You can convert all the items or individual items. You can also keep the items in the old format. If you choose to convert the items, previous versions of TestComplete (or TestExecute) will not be able to open the items.

The new format stores the password you specify via the Select Database Table wizard in a masked form. However, the connection settings used to access the baseline database, for example, the connection string, is stored in a plain view as one of the XML values. Keep this in mind if your connection settings contain sensitive information.

CrossBrowserTesting environment manager

In TestComplete versions prior to version 14.40, you can run web tests in remote CrossBrowserTesting environments by assigning them to environments via the CrossBrowserTesting manager. Starting from TestComplete version 14.40, this approach to running tests in CrossBrowserTesting environments was declared obsolete. In TestComplete version 14.72, it was removed from the product completely.

When you open project suites created in earlier TestComplete versions, they will be converted to the new format that does not support the CrossBrowserTesting environment manager. The manager will be removed from the project suite. Logs of tests run via the manager will also be removed.

Tags

In TestComplete version 14.20, you can assign tags to script functions, keyword tests, BDD scenarios and feature files. The previous versions supported tags for BDD scenarios and features only.

These “BDD” tags will remain in place. However, the tags concept has been changed to be consistent with and applicable to scripts and keyword tests:

  • Tags assigned to BDD tests no longer allow whitespaces and parentheses. If your tags have them, you will have to find and fix them manually.

  • Your project might have test items that run tests by tags. Version 14.20 introduces a new syntax for tags in test item properties. If your project has such test items, they will be converted to the new format automatically when you open your project in version 14.20.

  • If you run BDD tests by tags from the command line, you will have to update the command line to support the new format:

    Old format

    TestComplete.exe "C:\Work\My Projects\MySuite.pjs" /p:"My Project" /test:"Scenarios|@My tag" /r

    New format (TestComplete 14.20)

    TestComplete.exe "C:\Work\My Projects\MySuite.pjs" /p:"My Project" /test:"@My tag" /r
    – or –
    TestComplete.exe "C:\Work\My Projects\MySuite.pjs" /p:"My Project" /tags:"@My tag" /r

Test Items and Test Cases

When you open a project created in a TestComplete version prior to version 14.10, the project’s test items are marked as test cases automatically. When you run the project, TestComplete will include these test items in the Summary report. To exclude test items from the Summary report, you can unmark them as test cases in the Execution Plan editor of your project.

Runtime Project Properties

In TestComplete versions prior to version 14, projects had a number of properties that controlled TestComplete behavior when an error or warning occurred during the test run. In addition, test items had the Stop on error and Stop on exception properties that controlled TestComplete behavior when an error or exception occurred during the test item run.

In TestComplete 14, the way how you control TestComplete behavior during the test run has been changed, and so have the properties (for details, see the list of changes introduced in TestComplete version 14.0). Depending on how your projects and test items were configured in earlier TestComplete versions, after converting your project to a new format, they will be as follows:

Older TestComplete versions TestComplete 14 (and later) How it works in TestComplete 14 (and later)
Project runtime properties
Stop on error Error handling > On error  
  Enabled   Stop project TestComplete will stop the test run whenever an error is posted to the test log.
  Disabled   Continue running TestComplete will ignore errors posted to the test log and continue running tests.
Stop on warning Error handling > On warning  
  Enabled   Stop project TestComplete will stop the test run whenever a warning is posted to the test log.
  Disabled   Continue running TestComplete will ignore warnings posted to the test log and continue running tests.
Stop on window recognition error Error handling > On object recognition error  
  Enabled   Stop project When TestComplete is not able to get an object referred by its full name in an Open tested application, it will stop the test run.
  Disabled   Continue running When TestComplete is not able to get an object referred by its full name in an Open tested application, it will continue running the test.
Error dialog Show a notification when unhandled script exception occurs Specifies whether TestComplete will show an error dialog when an unhandled error occurs during the script test run.
Test item properties
If the project’s Stop on error property was enabled
  Test Item   Use project’s 'On error' property If an error occurs during the test run, TestComplete will act according to the Error handling > On error property specified in your project. That is, it will ignore the error and continue running the tests, stop the current test item, or stop the entire project run.
  None   Use project’s 'On error' property
  Project   Use project’s 'On error' property
If the project’s Stop on error property was disabled
  Test Item   Stop current item If an error occurs, TestComplete will stop the current test run immediately and proceed with the next test item.
  None   Continue running If an error occurs, TestComplete will ignore the error and continue running the current test item.
  Project   Stop project If an error occurs, TestComplete will stop the current test item run immediately and will not run anymore test item specified in the current project.

Web Components Support

Starting from version 14.0, TestComplete provides advanced support for web applications that use the following Web Components technologies: Shadow DOM and Custom Elements. Projects you create in this TestComplete version (or later) have support for Web Components enabled by default.

TestComplete versions prior to version 14.0 could recognize some web elements implemented with Web Components technologies as TextNode objects (or other regular web elements). If you have legacy tests working with those elements via the TextNode objects, you can do one of the following:

  • (Recommended.) Configure your test projects to support Web Components as it is described in Test Project Configuration and update your tests to work with your web application using provided support.

  • Keep your legacy tests. Make sure that the Enable support for Web Components option is disabled in your projects; otherwise, your tests will fail.

Optical Character Recognition (OCR)

TestComplete versions prior to version 12.60 included the Optical Character Recognition (OCR) engine that could capture and recognize text rendered on the screen. Starting from version 12.60, the engine has been deprecated and replaced with a new OCR engine powered by Google Vision API.

If in your tests you use the deprecated OCR engine, you can do one of the following:

TestComplete 10 - 12.4x

  • TestComplete versions prior to version 12.40 used the Layout name for controls of the com.android.internal.view.menu.ActionMenuView and android.widget.ActionMenuView classes. TestComplete version 12.4x and later use the Bar name for these classes. To avoid errors, you need to modify the tests created in TestComplete versions prior to 12.40.

    Possible Workarounds

  • The table checkpoints you created for WPF ListView controls in TestComplete 12.42 and earlier are not compatible with the updated table checkpoints that TestComplete 12.50 introduces. So, if your legacy tests have table checkpoints created for WPF ListView controls, you need to update these checkpoints after migrating your test project to TestComplete 15.70.

TestComplete 7 and 8 Projects

  • They do not include the load testing plugin anymore. SmartBear offers a dedicated product for Load Testing. You can learn more about it on our web site.

    If you convert a load testing project created in TestComplete 7 or 8 to the new format:

    • The HTTP Load Testing item will become Unavailable in the Project Explorer.

    • The existing event handlers for the load testing events (OnLoadTestingRequest, OnLoadTestingResponse and others) will remain in the Events project item, but they will never be triggered.

  • If your scripts use variables with the same names the scripting objects added in later TestComplete versions have, you need to rename the variables to avoid playback errors.

  • TestComplete 15 uses the s namespace prefix instead of the SOAP prefix in SOAP requests to the tested web services. If your tests parse the result of the PrepareRequests method or the LastRequest property value, you may need to change the tests to use the new SOAP request structure. See an example of a new SOAP request.

  • Test Visualizer settings are converted as follows:

    • In converted TestComplete 7 projects, Test Visualizer is disabled for test recording and for test runs.

    • In converted TestComplete 8 projects, disabled Test Visualizer remains disabled. Enabled Test Visualizer uses the Capture images option.

      For a description of the new options, see Default Project Properties - Visualizer Options.

Projects Created in TestComplete 6 or Earlier

  • The TestComplete 15 project format differs significantly from the format used in TestComplete 6 and earlier versions. If you experience issues with converting or running your converted project, please contact SmartBear Support for help.

  • In TestComplete 6 and earlier versions, you had to compile Delphi, C++Builder and Visual C++ applications with TestComplete libraries (tcOpenApp.pas, tcOpenAppClasses.pas, tcPublicInfo.pas and TCClient.cpp) to make them testable. This is no longer needed. To test your applications with TestComplete 15, recompile the applications without these libraries.

  • TestComplete 15 uses a different SOAP namespace for web service testing (see above). You may need to update your tests to use the new namespace.

Highlight search results