2015-12-16 2 views
1

Я успешно реализовал поддержку кодированного интерфейса для моего пользовательского элемента управления в VS2010. Но когда я пытаюсь обновить эти проекты до VS2012, VS2013 или VS2015, произошло следующее исключение. Пожалуйста, найдите стек исключений трассировки ниже:Предоставление поддержки кодированного UI для VS2012,2013,2015

Пример кода:

if (uiTestControl.ControlType == ControlType.Table) 
{ 
    //To-Do 
} 

Исключение:

System.InvalidCastException was unhandled 
    HResult=-2147467262 
    Message=Invalid cast from 'System.String' to 'Microsoft.VisualStudio.TestTools.UITesting.ControlType'. 
    Source=mscorlib 
    StackTrace: 
     at System.Convert.DefaultToType(IConvertible value, Type targetType, IFormatProvider provider) 
     at System.String.System.IConvertible.ToType(Type type, IFormatProvider provider) 
     at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) 
     at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetPropertyInternal[T](String propertyName) 
     at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.get_ControlType() 
     at CustomControl.GetPropertyNames(UITestControl uiTestControl) in d:\Coded_UI_Source\Src\CustomExtensionProvider\CustomPropertyProvider.cs:line 94 
     at Microsoft.VisualStudio.TestTools.UITesting.ALUtility.GetProperties(UITestPropertyProvider provider, UITestControl uiControl, UITestPropertyAttributes attributes, UITestPropertyAttributes ignoreAttributes) 
     at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.GetReadableAndAssertablePropertyNames() 
     at Microsoft.VisualStudio.TestTools.CodedUITest.Controls.UIControlLocator.UIControlFinder.FetchProperties(UITestControl element) 
     at Microsoft.VisualStudio.TestTools.CodedUITest.Controls.UIControlLocator.UIControlFinder.PopulateUITestControlDetails(UITestControl element, UIControlDetails uiControlDetails) 
     at Microsoft.VisualStudio.TestTools.CodedUITest.Controls.UIControlLocator.UIControlFinder.CaptureControl(UITestControl element) 
     at Microsoft.VisualStudio.TestTools.CodedUITest.Controls.UIControlLocator.UIControlFinder.PlaybackThreadproc() 
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 

Пожалуйста, помогите мне решить эту проблему, а также, пожалуйста, дайте мне знать, является ли я необходимо что-либо сделать для поддержки VS2012, 2013 и 2015 годов.

+0

Исключение явно говорит о том, что вы не можете сравнивать 'string' с' ControlType'. Вы уверены, что то, что у вас есть в 'uiTestControl.ControlType', является стандартным UITestControl со стандартным' ControlType' типа 'ControlType'? –

+0

Моя проблема в том, что этот код отлично работает в VS2010, но он не работает в 2012,2013,2015, и он выдает исключение. –

ответ

0

Проблема occures в вашем коде CustomPropertyProvider.cs: строка 94, он вызывает get_ControlType(), который ищет тип управления. Кажется, вы не задали тип управления правильно в пользовательском элементе управления, когда он пытается преобразовать имя типа управления в тип.

at CustomControl.GetPropertyNames(UITestControl uiTestControl) in d:\Coded_UI_Source\Src\CustomExtensionProvider\CustomPropertyProvider.cs:line 94 
+0

Да. Я проанализировал эту вещь, и мне интересно, что она работает в VS2010 и не работает в VS2012. поэтому –

+0

Возможно, в версии элементов управления/оснастки есть обновление. Microsoft внесла некоторые изменения/обновления в Microsoft.VisualStudio.TestTools.UITesting. – Peter

+0

Спасибо .. я отправил запрос в MSDN тоже ... Но я хочу знать, знают ли кто-нибудь или сталкиваются с такой проблемой ... –

Смежные вопросы