Forum Discussion

kimmyh51's avatar
kimmyh51
Contributor
12 years ago

Is there a way to convert my project from TC 9 to TC 8.7?

Hi



I have asked this in support requests but not had a response.  I would like to know how I can convert my TC 9 project to the older version of test complete, until the stability issues I am experiencing are resolved, as Test complete is crashing multiple times daily, and each time this happens I find errors in my scripts afterward - and that some changes I have made are saved and others have been lost.  I am losing a lot of time daily having to go back over scripts and fix things when it crashes.  Is there a way I can convert the following project items to TC 8.7:



userforms

project variables

name mapping



Also wondering approximately when there is likely to be a patch released for version 9?

4 Replies

  • jbcmt's avatar
    jbcmt
    Occasional Contributor
    I've experienced the same disappointment.  I tried to train someone today, and it ended up being "Well, this is what should happen...." session.



    Good news is that all the code can be reused in 8.70, but you'll need to recreate the Projects (and Suite) from scratch, then manually add the units.  Really bad news is that the Namemapping file cannot be used anymore!  Unless Smartbear has a backwards conversion program available, you'd have to build that from scratch.



    There is a newer build (1312), but it didn't solve my slowness problem.


  • hlalumiere's avatar
    hlalumiere
    Regular Contributor
    There are a few things I came across as problematic while converting our application's test project from 8.2 to 9. Because the existing codebase never used name mappings, we decided to take the opportunity to review the entire codebase, optimize time intensive routines, eliminate stale and repetitive code etc, since we already had to go through it to update the object mappings.



    Some constructs that worked fine in TC8.2 now cause issues. For example:



    Do While WaitForm(GetMainProcess, "FExtendedProgress", DELAY_WAITFORM).Exists

        ...

    Loop



    WaitForm is just an adapted .FindAllChildren and auto-maximize, GetMainProcess returns a reference to the application process, and DELAY_WAITFORM = 5000.



    This now eventually in a long loop fails with different non-sensical errors like "The window is disabled." or "The window was destroyed during method executions", etc... Of course it's not excellent code, but the point is this was working. Now after revision it looks like this:



    Set FExtendedProgress = WaitForm(GetMainProcess, "FExtendedProgress", DELAY_WAITFORM)

    Do While FExtendedProgress.Exists

        ...

    Loop



    And works fine. Point is there is no heads or tails as to what is causing the original implementation to fail in TC9, but it is clear from the solution implemented that repeatedly calling FindAllChildren is the culprit here. Since I installed the 1312 patch and revised some code, the 15% we have converted performs very well, in many cases faster than TC8.2, but there is still that annoying occasional pause where TC seems to be looking for a window it should see right away. I am hoping this will get isolated and fixed soon. If you have a large project, you should ideally keep 8.x running for production, and setup a separate machine with the 9.0 version of your project on to experiment and benchmark. There will be code to change, and hoops to jump through, no matter what the official notes say, but once it is done I bet the TC9 version of your project will be faster than 8.2.
  • Thanks for the replies

    do you know if user forms can be used in version 8.7? as I have a number of those in this project so will ave to spend some time setting them up again if they wont run in 9





  • Hi,



    TC9 converts user forms to its format which is not compatible with TC8. If you create or save a form in TC9, TC8 won't be able to use it.