Поблочное тестирование с WatiN и NUnit

Кажется, что общая тема среди ТАК вопросов относительно WatiN имеет отношение к фактическому получению вещи работа, и я не исключение.

Я загрузил последний выпуск WatiN (2.0.20.1089), и пытаюсь создать NUnit / WatiN, эквивалентный из Привет, Мир:

using WatiN.Core;
using NUnit.Framework;

namespace Foo.Browser.Tests
{
    [TestFixture]
    public class BrowserTests
    {
        [Test]
        [STAThread]
        public void ExampleTest()
        {

            IE ie = new IE("http://www.google.com");

            ie.TextField(Find.ByName("q")).TypeText("WatiN");
            ie.Button(Find.ByValue("Google Search")).Click();
            Link link = ie.Link(Find.ByUrl("http://watin.sourceforge.net/"));

            Assert.That(link.Text == "WatiN Home");
        }

        [Test]
        public void FirefoxTest()
        {
            FireFox ff = new FireFox("http://www.google.com");

            ff.TextField(Find.ByName("q")).TypeText("WatiN");

            ff.Button(Find.ByValue("Google Search")).Click();
            Link link = ff.Link(Find.ByUrl("http://watin.sourceforge.net/"));

            Assert.That(link.Text == "WatiN Home");
        }
    }

Это подсказки IE (8) после возможного тайм-аута со следующим отслеживанием стека:

в WatiN.Core. UtilityClasses. TryFuncUntilTimeOut. ThrowTimeOutException (Исключение lastException, Строковое сообщение) в WatiN.Core. UtilityClasses. TryFuncUntilTimeOut. HandleTimeOut () в WatiN.Core. UtilityClasses. TryFuncUntilTimeOut. Попробуйте [T] (DoFunc '1 func) в WatiN.Core. WaitForCompleteBase. WaitUntil (DoFunc' 1 waitWhile, BuildTimeOutExceptionMessage exceptionMessage) в WatiN.Core. Собственный компонент. InternetExplorer. IEWaitForComplete. WaitWhileFrameDocumentNotAvailable (кадр IWebBrowser2) в WatiN.Core. Собственный компонент. InternetExplorer. IEWaitForComplete. WaitForFramesToComplete (IHTMLDocument2 maindocument) в WatiN.Core. Собственный компонент. InternetExplorer. IEWaitForComplete. WaitForFramesToComplete (IHTMLDocument2 maindocument) в WatiN.Core. Собственный компонент. InternetExplorer. IEWaitForComplete. WaitForCompleteOrTimeout () в WatiN.Core. WaitForCompleteBase. DoWait () в WatiN.Core. DomContainer. WaitForComplete (IWait waitForComplete) в WatiN.Core. IE.WaitForComplete (Int32 waitForCompleteTimeOut) в WatiN.Core. DomContainer. WaitForComplete () в WatiN.Core. Браузер. GoTo (URL Uri) в WatiN.Core. IE.FinishInitialization (Uri Uri) в WatiN.Core. IE.CreateNewIEAndGoToUri (Uri Uri, IDialogHandler logonDialogHandler, булевская переменная createInNewProcess) в WatiN.Core. IE.. ctor (Строковый URL) в Foo. Браузер. Тесты. BrowserTests. ExampleTest () в C:\Development\Foo\Foo.Browser.Tests\BrowserTests.cs:line 19

У меня есть необходимый файл конфигурации в моей bin\debug папке (Foo. Браузер. Tests.dll.config), как указано на странице документации WatiN, поэтому чем еще это, вероятно, будет? У кого-либо есть какие-либо предложения для того, что могло бы вызывать проблему?

5
задан Phil.Wheeler 19 January 2010 в 23:06
поделиться

4 ответа

Фил,

взглянуть на Innerexception of Remde Timeoutexcepeepeetion. Это, скорее всего, будет содержать больше информации, чтобы решить вашу проблему.

HTH Jeroen Van Menen Ведущий Дэр Уотин

5
ответ дан 18 December 2019 в 14:46
поделиться

Не было в большинстве выпусков Watin через Xunit.net сам.

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

  • - это Nunit Process Admin? Это его нерестовый админ? посмотрите в диспетчере задач. (Не то, что работает как admin - это Panacea - вы в идеале хотите избежать этого, но как способ устранить причины для него не работать)
  • работает через TestDriven.net, Codeerush или Resharper Help?
  • У вас есть [ссылаясь на соответствующие DLL как способ получить] зависимые dlls, такие как shdocvvw.dll, сидя вместе с вашей тестовой ассамблеей]?
  • Вы пытались увидеть, если Fiddler показывает что-нибудь сроки?
  • Вы пытались просмотреть вручную Убедитесь, что любые диалоги безопасности были в порядке в контексте? E.g., Иногда ваш тестовый контекст может быть администратором, тогда как ваш обычный профиль просмотра не может быть (зависит от браузера) - например, если вы проигнорировали предупреждение CERT в одном контексте, но не то, что это может вызвать проблему.

Один большой Gogcha, который повочен мне, WRT Watin, это то, что после нескольких тысяч вызовов на WS08 IE откажутся к сотрудничеству, пока вы не выйдете и снова выйдете (см. Одно из моих выдающихся вопросов). Маршрут. Это академически для многих сценариев.

1
ответ дан 18 December 2019 в 14:46
поделиться

Я столкнулся с проблемами, схожими с проблемами Рубена, связанными с ситуацией выхода из логотипа/входа в логотип. Лучшая аргументация, которую я смог найти до сих пор, связана с тем, что WatiN использует IE с помощью COM сервера. Могут возникнуть проблемы с утилизацией, но это совсем другая Опра...

Что касается ситуации с тайм-аутом, то она случается время от времени, но обычно появляется сообщение в консоли NUnit и продолжается. Одно большое различие, которое я вижу между вашей реализацией и моей, заключается в том, что я запускаю экземпляр IE как однокнопочный объект. Таким образом, мне никогда не придется закрывать и открывать IE между тестами, и с тех пор я не сталкивался с проблемой логотипа/входа в систему. Следовательно, мои циклы тестирования короче, даже когда IE виден и не работает в фоновом режиме.

0
ответ дан 18 December 2019 в 14:46
поделиться

Похоже, Фил ответил на ваш вопрос, но я обнаружил, что ваш пример также генерирует исключения. Чтобы исправить указанную проблему, я изменил поиск ссылки, чтобы он выглядел по атрибуту (href), как показано ниже.

[Test]
public void ExampleTest()
{
    IE ie = new IE("http://www.google.com"); 

    ie.TextField(Find.ByName("q")).TypeText("WatiN"); 
    ie.Button(Find.ByValue("Google Search")).Click(); 
    Link link = ie.Link(Find.By("href", "http://watin.sourceforge.net/"));

    Assert.That(link.Text == "WatiN Home"); 
}

Обратите внимание, что я тестировал только IE, так как на этом компьютере не установлен FireFox.

5
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

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