We are trying out the latest version of Test Studio (2012.2.920.0) to see if we can upgrade to it (our current version is 2011.1.411.0). We have run into an issue which could be a show-stopper for the upgrade (for us). Here is the issue:
Many of our tests have steps that data-bind to combinations
of data variables - rather than a single data variable. Here is an example:
Type 'Seedpatient Uiautotest' into TxtNameCriteriaTextbox - DataDriven: [$(TestPatientFirstName) $(TestPatientLastName)]
Our tests use XML file databinding and "TestPatientFirstName" and "TestPatientLastName" are separate nodes in the XML file.
All such tests are working fine in our current version but are failing under the new version. Error message in the log file under the new version is as follows:
'10/22/2012 11:54:55 AM' - 'Fail' : 6. Type 'Seedpatient Uiautotest' into TxtNameCriteriaTextbox - DataDriven: [$(TestPatientFirstName) $(TestPatientLastName)]
Column name 'TestPatientFirstName) $(TestPatientLastName' does not exist!
System.ArgumentException: Column name 'TestPatientFirstName) $(TestPatientLastName' does not exist!
at ArtOfTest.Common.Design.Data.DataResolver.GetMatchValue(Match match, DataRow data, Boolean throwError)
at ArtOfTest.Common.Design.Data.DataResolver.GetMatchString(String expression, DataRow data, Boolean error)
at ArtOfTest.Common.Design.Extensibility.Descriptors.AutomationDescriptor.BindData(String propertyName)
at ArtOfTest.Common.Design.ProjectModel.DataBoundObject.BindData[T](String propertyName)
at ArtOfTest.WebAii.Design.IntrinsicTranslators.Silverlight.Descriptors.TextBoxSetTextActionDescriptor.Execute(IApplication hostApp)
at ArtOfTest.WebAii.Design.Extensibility.XamlActionDescriptor.Execute(IAutomationHost autoHost)
at ArtOfTest.WebAii.Design.Execution.ExecutionEngine.ExecuteStep(Int32 order)
From the error message, it looks like Test Studio is no longer recognizing the presence of multiple variables in the databinding - it is apparently trying to interpret everything within the opening "$(" and the last ")" as a single variable - and looking for a column with that name (which, of course, it does not find).
I saw that there is a new UI now for setting data-binding (it looks like it came in with version 2011.1.719.0). It is nice that we can select the variables from a list now but it has a couple of issues with the above scenario:
a) TypedText and RecordedText dropdowns are blank by default (after upgrade to the new version).
b) I don't see a way to select multiple variables for either field.
c) Dropdown text field is not editable - so we can't type in to it. This prevents me from overriding the default selection to use the multi-variable databinding.
I know I can work around this by creating a new data variable with the combined value - but would prefer not to as it leads to a maintenance issue (these variables are used in multiple tests and some of them require just parts of the name rather than the full name).
I hope you can provide a solution for the above issue that would allow us to continue using multiple variable databinding. We are ok with making minor changes in code if that is what it takes. If the ability to select multiple variables is supported in the new Databinding UI, please let us know how to do that - if not, it would be good to get a new internal build that restores the ability to type in the data-binding as we used to be able to do in previous releases.
As mentioned before, this may be a show-stopper for us to upgrade to the new release - which would be a shame as it looks like it has some pretty nice features and fixes to a few issues that we have been waiting on for a while.
I look forward to hearing from you.