Можете ли вы вызвать элемент управления, а не запускать приложение для закодированных тестов пользовательского интерфейса?

У меня есть такой код, что:

[CodedUITest]
public class CodedUITest1
{

[TestMethod]
public void CodedUITestMethod1( )
{
  using(var dlg = new MyWinForm( ))
  {
    dlg.Show();
    System.Threading.Thread.Sleep(2000);
    this.UIMap.AssertMethod1( );
    this.UIMap.RecordedMethod1( );
    this.UIMap.AssertMethod2( );
   }

  }
}

Код работал нормально, когда я вручную запускал приложение (перед вызовом теста) без предложения использования для непосредственного создания элемента управления.

Я хотел бы просто использовать ссылку, чтобы создать экземпляр элемента управления и перейти оттуда, вместо того, чтобы полагаться на попытки определить путь к исполняемому файлу и открыть его. Приложение просто застревает с ContextSwitchDeadlock.

Есть ли способ выполнить тесты закодированного пользовательского интерфейса без запуска процесса? (используя ссылку и создавая элемент управления в тестовом коде) или что-то не так с тем, как я пытаюсь это сделать?


person Maslow    schedule 08.12.2010    source источник
comment
Затем, после нажатия кнопки «ОК» для блокировки переключения контекста и повторного нажатия кнопки «Воспроизвести» в окончательной версии VS2010... Я получаю исключение UITestControlNotFoundException.   -  person Maslow    schedule 08.12.2010
comment
Я знаю, что это было 5 лет назад, но вам когда-нибудь удавалось заставить это работать? Я пытаюсь сделать то же самое и сталкиваюсь с теми же проблемами?   -  person Simon B    schedule 25.11.2016
comment
Я не верю, что я сделал.   -  person Maslow    schedule 26.11.2016


Ответы (1)


Это может быть возможно, если вы вызовете закодированные тестовые части пользовательского интерфейса (this.UIMap...) в отдельном потоке. Но как у вас сейчас, они оба находятся в одном потоке, так что вы зайдете в тупик.

person Tom E    schedule 09.12.2010