Бета-версия WatiN 2.0: заставка все еще не работает

#c# #automated-tests #watin

#c# #автоматизированные тесты #watin

Вопрос:

Я написал демонстрационный код для тестирования функции заставки WatiN.

Но когда я намеренно пишу следующий фрагмент кода для сбоя и сохраняю снимок экрана, он просто перестает выполняться после утверждения.Истинный ie, в котором тест не выполняется

 using System;
using WatiN.Core;
using Gallio.Framework;
using MbUnit.Framework;
using Gallio.Model;


namespace Screenshotwhentestfails
{
    [TestFixture]
    class Program
    {

        public IE ie = new IE();
        [STAThread]
        [Test]
        static void Main(string[] args)
        {
            DemoCaptureOnFailure();
            DisposeBrowser();
        }
        [Test]
        [TearDown]
        public static void DemoCaptureOnFailure()
        {
            IE ie = new IE();
            using (TestLog.BeginSection("Go to Google, enter MbUnit as a search term and click I'm Feeling Lucky"))
            {
                ie.GoTo("http://www.google.com");

                ie.TextField(Find.ByName("q")).TypeText("MbUnit");
                ie.Button(Find.ByName("btnI")).Click();
            }

            // Of course this is ridiculous, we'll be on the MbUnit homepage...
            Assert.IsTrue(ie.ContainsText("NUnit"), "Expected to find NUnit on the page.");
        }
        [TearDown]
        public static void DisposeBrowser()
        {
            IE ie = new IE();
            if (TestContext.CurrentContext.Outcome == TestOutcome.Failed)
            {
                ie.CaptureWebPageToFile("C:\Documents and Settings\All Users\Favorites.png");
            }

        }
        }
    }
  

Это выбрасывает исключение в

                 Assert.IsTrue(ie.ContainsText("NUnit"), "Expected to find NUnit on the page.");
  

этот шаг, который был преднамеренным, но сохранение скриншота в указанном месте не выполнено.

Спасибо за любую помощь:)

Ответ №1:

Я думал, ты где используешь NUnit??? В любом случае, вот что вам нужно сделать.

Вы не совсем правильно настраиваете свой тест.

В вашем приложении перейдите в меню Файл-> Создать-> Проект… и добавьте «Тестовый проект MbUnit V3» (версия c #). В обозревателе решений добавьте ссылку на библиотеку DLL WatiN.

Сначала добавьте новый класс для своих тестов с атрибутом [TestFixture]: —

 [TestFixture]
public class ScreenshotTest
  

Добавьте столько методов тестирования, сколько захотите: —

 [Test]
public void DoScreenshotTest()
  

Если у вас есть некоторый код инициализации / завершения, который вы хотите запустить для ВСЕХ тестов в этом классе, вы можете добавить методы: —

 [SetUp]
public void DoTestSetup()

[TearDown]
public void DoTestTeardown()
  

Если вы создадите свое решение и откроете окно просмотра тестов (Test-> Windows-> Test View), вы должны увидеть свои новые методы тестирования. Затем вы можете щелкнуть правой кнопкой мыши и «Запустить выбор» или «Отладить выбор»

Вот полная версия кода, HTH!

 [TestFixture]
public class ScreenshotTest
{
    private IE ie;

    [SetUp]
    public void DoTestSetup()
    {
        ie = new IE();
    }

    [TearDown]
    public void DoTestTeardown()
    {
        if (ie != null)
        {
            if (TestContext.CurrentContext.Outcome == TestOutcome.Failed)
                ie.CaptureWebPageToFile(@"C:Documents and SettingsAll UsersFavorites.png");

            ie.Close();
            ie.Dispose();
            ie = null;
        }
    }

    [Test]
    public void DoScreenshotTest()
    {
        Assert.IsNotNull(ie);

        using (TestLog.BeginSection("Go to Google, enter MbUnit as a search term and click I'm Feeling Lucky"))
        {
            ie.GoTo("http://www.google.com");
            ie.TextField(Find.ByName("q")).TypeText("MbUnit");
            ie.Button(Find.ByName("btnI")).Click();
        }

        Assert.IsTrue(ie.ContainsText("NUnit"), "Expected to find NUnit on the page.");
    }
}
  

Комментарии:

1. Кроме того, в вашем примере вы знаете, что вы создаете три отдельных экземпляра IE? Один в классе, один в DemoCaptureOnFailure и один в DisposeBrowser.