Troubleshooting C++Builder Applications

Applies to TestComplete 14.93, last modified on October 12, 2021

This topic lists typical issues you may experience when testing C++Builder applications with TestComplete and possible solutions to these issues.

TestComplete cannot get access to the application’s internal members

If TestComplete cannot access the internals of the C++Builder application under test, go through the following steps:

  • Check whether the Debug Info Agent™ is enabled.

    TestComplete uses the Debug Info Agent™ technology to access internals of C++Builder applications. You can check whether the Debug Info Agent™ is enabled on the Project Properties - Debug Agent Options or Default Project Properties - Debug Agent Options page.

  • Check whether the tested application is compiled with debug information.

    If your C++Builder application is compiled without debug information, TestComplete can access only published properties of the application. In order to access public, protected and private properties and methods of your C++Builder application from your tests, you must compile your application with debug information.

  • Check whether the "Read debug information for statically linked libraries" project option is enabled.

    If your application is compiled with runtime packages, you must enable the Read debug information for statically linked libraries project option, otherwise TestComplete will be unable to get access to some of the application’s internals.

  • Make sure that the application is not compiled with a tool that may change the debug information format.

    The TestComplete Debug Info Agent is incompatible with tools that change the debug information format. An example of such a tool is EurekaLog 7. We recommend that you disable EurekaLog when compiling an application that is aimed for automated testing with TestComplete.

  • Check whether the internal object of the application is visible.

    The methods and properties provided by TestComplete can be applied only to objects (specifically VCL objects) which are currently visible. You can either replace these methods and properties with identical native methods and properties of VCL or C++, or perform a call when the needed object becomes visible (for example, after the required actions are performed).

TestComplete currently does not support access to public, protected and private members of VCL controls in 64-bit C++Builder applications.

A C++Builder application compiled for an earlier version of TestComplete works incorrectly

C++Builder applications that were compiled for TestComplete 6 and earlier versions may function incorrectly in TestComplete 14. In TestComplete 6 and earlier, you had to recompile C++Builder applications with the helper tcOpenApp.pas, tcOpenAppClasses.pas and tcPublicInfo.pas files. In TestComplete 14, these files are no longer used.

To resolve the issue, remove the abovementioned files from your C++Builder project and rebuild it. See also Migrating Projects Created in Earlier Versions to TestComplete 14.

See Also

Recording Automated Tests
Recording Options Dialog
Recording Specifics

Highlight search results