Как правильно отобразить диалог из метода MSTest в VS 2010? - PullRequest
0 голосов
/ 20 июля 2010

Недавно я обновил проект MSTest до .NET 4.0 и VS 2010. Некоторые из тестов запрашивают службу стороннего поставщика и, таким образом, запрашивают у пользователя необходимые учетные данные для связи через наш корпоративный веб-прокси.Раньше это нормально работало в vs2008, но после обновления диалоговое окно будет отображаться только в том случае, если пользователь переключает фокус с VS на другое приложение сразу после запуска тестов.Есть ли что-то особенное, что нужно сделать при отображении диалога?Наилучшее, что я могу понять, это то, что есть некоторая оговорка WPF, которая была введена с перепроектированием VS.

Код, о котором идет речь

private void PromptUser()
        {
            if (!credentialsSet)
            {
                using (CredentialsDialog dialog = new CredentialsDialog(true))
                {
                    Process process = Process.GetCurrentProcess();
                    IWin32Window window = Control.FromHandle(process.MainWindowHandle);
                    DialogResult dr = dialog.ShowDialog(window);

                    if (dr == DialogResult.Cancel)
                    {
                        throw new InvalidOperationException("Credentials not entered");
                    }

                    credentials = dialog.Credentials;
                    user = dialog.Username;
                    password = dialog.Password;
                    domain = dialog.Domain;
                }

                credentialsSet = true;
            }
        }

Ответы [ 2 ]

1 голос
/ 08 августа 2010

Вам может потребоваться активировать диалоговое окно, чтобы оно всплыло над любыми активными программами.

using (CredentialsDialog dialog = new CredentialsDialog(true))
{
    Process process = Process.GetCurrentProcess();
    IWin32Window window = Control.FromHandle(process.MainWindowHandle);
    dialog.Activate();
    DialogResult dr = dialog.ShowDialog(window);

    // ...
}

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.activate.aspx

1 голос
/ 08 августа 2010

Я бы сказал, что требовать учетные данные - плохая практика.Собираетесь ли вы добавить свои учетные данные в зашифрованном виде в конфигурацию тестовой сборки.

Вы столкнетесь с множеством проблем, если попытаетесь настроить это для автоматической сборки.

...