2013-06-05 5 views
1

У меня есть два основных вопроса, как в зависимости от настроек DPI:Кодовые тесты пользовательского интерфейса с различными настройками DPI

  1. Как я могу проверить различные настройки DPI с тестами Coded UI?
  2. Как я могу проверить все мои формы, диалоговые в моем проекте, если все управления видны (т.е. не усеченной)

Наш проект написан на 96 DPI. В Windows есть три настройки для DPI:

  • Меньший - 100% = 96 DPI
  • Medium - 125% = 120 DPI
  • Larger - 150% = 144 DPI

Являются ли кодированные пользовательские интерфейсы подходящими для таких сложных задач? Или что ты предлагаешь мне?

Если вам нужна дополнительная информация, я был бы рад ответить на них. Я не думаю, что какой-либо код нужен, потому что это просто нормальное приложение winforms, и я ищу подход для покрытия любого приложения winform.

+0

tumbleweed inc? :( –

ответ

0

Если все элементы управления видны (формы, диалоговые окна) в разных настройках DPI, то я не думаю, что есть какие-либо проблемы. Вам нужно записать утверждения на все формы, кнопки и диалоги (любые элементы управления), чтобы проверить «существует», пока только один DPI говорит 100%, а затем повторите выполнение теста во всех других настройках DPI. Pls дает ему попробовать, и мы также знаем результат.

-Prasant

1

Coded UI предназначен для проверки работы приложения. Не для проверки внешнего вида. Таким образом, обычно кодированный пользовательский интерфейс не подходит для проверки цветов экрана или используемых шрифтов или разрывов строк в тексте. Тем не менее, Coded UI действительно обеспечивает метод CaptureImage() так в любой момент теста вы можете написать код в виде:

Image img = UITestControl.Desktop.CaptureImage(); 
Image img = this.UIMap.UIYourApplicationsWindow.CaptureImage(); 
Image img = this.UIMap.UIYourApplicationsWindow.UISubWindow.UISubSub.CaptureImage(); 
... followed by: 
img.Save(... filename ...); 
TextContext.AddResultFile(... filename ...) 

я использовал метод CaptureImage() но не экспериментировал на, делает ли снимок экрана или ли это использует основной файл изображения.

Существует также блог MSDN, который может помочь. См. http://blogs.msdn.com/b/gautamg/archive/2010/04/08/how-to-do-image-comparison-in-coded-ui-test.aspx

+0

Спасибо, мне нравится подсказка с CaptureImage. И знаете ли вы способ настройки разных параметров dpi перед запуском кодированных тестов ui? –

+0

Как и где бы вы установили DPI как обычный пользователь программы или Windows. Возможно, вам нужно записать кодированный пользовательский интерфейс, который использует панель управления Windows, чтобы внести изменения, но я могу думать о проблемах с этим! Я думаю, что Windows делает какую-то графическую перезагрузку при изменении свойств отображения. – AdrianHHH

0

Здесь я нашел и отредактировал небольшой фрагмент кода. Это написано в C#.

В этом коде мы преобразуем два объекта изображения в Base64 String. Сравнивая вместе Base64 string, мы будем знать, что изображения одинаковы. Код ниже.

public static bool ImageCompareString(Image firstImage, Image secondImage) 
{ 
    var ms = new MemoryStream(); 
    firstImage.Save(ms, ImageFormat.Png); 
    String firstBitmap = Convert.ToBase64String(ms.ToArray()); 
    ms.Position = 0; 
    secondImage.Save(ms, ImageFormat.Png); 
    String secondBitmap = Convert.ToBase64String(ms.ToArray()); 
    if (firstBitmap.Equals(secondBitmap)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
+0

Пожалуйста, добавьте объяснение того, как это сообщение отвечает на исходный вопрос, касающийся тестирования с различными настройками DPI. Просто публикация кода, который явно не отвечает на вопрос, не помогает. – AdrianHHH