WatiN 2.0 Beta: заставка все еще не работает - PullRequest
0 голосов
/ 17 октября 2011

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

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

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 Ответ

1 голос
/ 17 октября 2011

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

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

В вашем приложении перейдите в File-> New-> Project ... и добавьте "Тестовый проект MbUnit V3" (версия c #). В обозревателе решений добавьте ссылку на библиотеку WatiN.

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

[TestFixture]
public class ScreenshotTest

Добавьте столько методов испытаний, сколько хотите: -

[Test]
public void DoScreenshotTest()

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

[SetUp]
public void DoTestSetup()

[TearDown]
public void DoTestTeardown()

Если вы строите свое решение и открываете окно Test View (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 Settings\All Users\Favorites.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.");
    }
}
...