@Dommager

Как тестировать интерфейс приложения на C#?

Добрый вечер.
Не получается протестировать интерфейс своего приложения в VS на языке C#.
Пробовал через стандартный пакет закодированных тестов. Во время записи не могу банально открыть приложение, уже открытое приложение также плохо реагирует на отклик. К примеру кликаешь мышью, вся система зависает на 2-3 секунды и потом реагирует так, будто клавиша мыши просто нажата 1 раз и удерживается, независимо от того сколько было кликов.

Забил на это, скачал Teststack.White. Ругается на строку, где определяется главное окно(Unlited -Notepad). Каким образом вообще определить главное окно? Юзал программы Visual UI Automation и UISpy, но как определить именно главное окно не понял.

В отладке выдает такую ошибку
5a20516945cf9026446982.jpeg

Вот полный код программы

using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TestStack.White;
using System.IO;
using TestStack.White.UIItems;
using TestStack.White.UIItems.WindowItems;
using TestStack.White.UIItems.Finders;
using TestStack.White.UIItems.MenuItems;
using TestStack.White.UIItems.WindowStripControls;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestCalk()
        {
            var application2 = Application.Launch("notepad");
           var window2 = application2.GetWindow("Untitled - Notepad");

            //  Thread.Sleep(1000);
            //window2.Get<Button>(SearchCriteria.ByAutomationId("num1Button")).Click();
            var textArea = window2.Get<TextBox>(SearchCriteria.ByAutomationId("15"));
            textArea.Text = "Hello, world!";
           // Assert.AreEqual(window2.Get<Label>(SearchCriteria.ByAutomationId("CalculatorResults")).Text.ToString(), "6");
                application2.Kill();
        }
    }
}


Открывается блокнот, но ничего в нем не пишется, естественно. ТАкже пробовал с калькулятором, та же проблема - с определением главного окна.

Уже неделю не могу найти способа, как протестировать интерфейс(нужно в универ на лабу), помогите пожалуйста любой информацией - буду вам очень благодарен
  • Вопрос задан
  • 408 просмотров
Решения вопроса 1
1. Вы уверены, что блокнот у вас имеет заголовок "Untitled - Notepad", а не "Безымянный - Блокнот"?
2. После запуска процесса и перед отображением окна проходит некоторое время. Имеет смысл сделать задержку после запуска приложения и перед получением доступа к его окну
var application2 = Application.Launch("notepad");
Thread.Sleep(500);
var window2 = application2.GetWindow("Untitled - Notepad");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы