Preparing C++Builder XE2 - XE8 and 10 Applications for Testing

Applies to TestLeft 15.40, last modified on March 17, 2022

TestLeft exposes members of objects in C++Builder applications if the application is compiled with debug information. This topic explains how to include debug information into applications created with Embarcadero C++Builder XE2 – XE8 and C++Builder 10 - 10.4.

Notes:

  • TestLeft currently does not support exposing private, protected and public members of objects in 64-bit C++Builder applications. Only published members can be exposed.

  • TestLeft is incompatible with tools that change the debug information format (for example, EurekaLog 7). We recommend that you disable such tools before compiling applications that will be tested with TestLeft.
  1. Open your project in Embarcadero C++Builder.

  2. Choose Project | Options from the main menu to open the Project Options dialog.

  3. Select the C++ Compiler | Optimizations category and set the Disable all optimizations option to true:

  4. Switch to the C++ Linker category and set the Full debug information option to true:

  5. Switch to the C++ (Shared Options) category and examine the Library path. Make sure that the path includes the $(BDS)\lib\$(PLATFORM)\debug folder:

  6. It is recommended that you turn off the Link with runtime packages option in the Packages | Runtime Packages category:

    If this property is selected, Embarcadero C++Builder creates Borland package library (.bpl) files when compiling the application. TestLeft cannot access debug information in these files and some controls. If this property is not selected, all information is included in a single executable and can be accessed by TestLeft.

    If, for some reason, you cannot turn off the Build with runtime packages option, TestLeft may not be able to get access to the application's internal methods and properties.
  7. Once you have completed these steps, click OK to save the changes and close the Project Options dialog.

  8. Re-build the application.

Note: Debug information generated by the 32-bit C++Builder compiler is stored in .tds files. Make sure that the generated .tds files reside in the same folders as the appropriate modules of the application under test, otherwise TestLeft will not be able to access application internals.

Before delivering your application, remember to compile it without debug information in order to reduce the application size.

By default, Developer Express VCL components for C++Builder are compiled and distributed without debug information. Therefore, TestLeft cannot access properties and methods of such VCL controls in the tested C++Builder application. However, you can re-compile Developer Express VCL components for C++Builder with debug information and then use them in C++Builder applications you test with TestLeft. To learn how to prepare these components for C++Builder applications, see Preparing Developer Express VCL Components for C++Builder Applications.

To make TestLeft recognize TMS Software VCL controls in the tested C++Builder application properly and obtain access to their properties and methods, we recommend that you re-compile the utilized TMS components with full debug information before including them in your C++Builder application. To learn how to prepare these components for C++Builder applications, see Preparing TMS Software VCL Components for C++Builder Applications.

See Also

Preparing C++Builder Applications for Testing

Highlight search results