Несколько [SetupTest] для разных конфигов - PullRequest
4 голосов
/ 24 августа 2010

Возможно ли иметь несколько [SetupTest] в одном приборе?

Я использую Selenium и nUnit и хотел бы иметь возможность указать браузер, на котором пользователь хочет протестировать.

У меня есть простой пользовательский графический интерфейс для выбора тестов для запуска, но я знаю, что в будущем мы хотим подключить его к круиз-контролю для автоматического запуска тестов.В идеале мне нужны тесты, которые можно запускать как на нашем графическом, так и на графическом интерфейсе NUnit.

Ответы [ 2 ]

6 голосов
/ 24 сентября 2010

Возможно ли иметь несколько [SetupTest] в одном приборе?

Можно определить все ваши тесты в базовом классе, сделать так, чтобы несколько приборов наследовали тесты, а затем выбрать тип устройства, зависящий от среды.У меня есть для [TestFixtureSetup].Тот же принцип работает для всех атрибутов настройки.Обратите внимание, что я помещаю [TestFixture] только в дочерние классы.Поскольку базовый «TestClass» не имеет полного кода установки, вы не хотите запускать тесты напрямую.

public class TestClass
{
    public virtual void TestFixtureSetUp()
    {
        // environment independent code...
    }

    [Test]
    public void Test1() { Console.WriteLine("Test1 pass.");  }

    // More Environment independent tests...
}

[TestFixture]
public class BrowserFixture : TestClass
{
    [TestFixtureSetUp]
    public override void TestFixtureSetUp()
    {
        base.TestFixtureSetUp();
        // environment dependent code...
    }
}

[TestFixture]
public class GUIFixture : TestClass
{
    [TestFixtureSetUp]
    public override void TestFixtureSetUp()
    {
        base.TestFixtureSetUp();
        // environment dependent code...
    }
}
0 голосов
/ 08 сентября 2010

Я подозреваю, что вы можете использовать параметризованные тесты, представленные в NUnit 2.5, чтобы делать то, что вы хотите, но я не совсем понимаю, что вы хотите сделать здесь. Тем не менее, вы можете определить осветитель и заставить его принимать переменную Browser в своем конструкторе, а затем использовать параметризованные атрибуты TestFixture, такие как

TextFixture["Firefox"]
TestFixture["Chrome"]
public class ParameterizedTestFixture { 
  //Constructor
  public ParameterizedTestFixture( string Browser) {
  //set fixture variables relating to browser treatment
  }
  //rest of class
}

Подробнее см. NUnit Documentation .

Атрибут Setup определяет метод, который запускается перед каждым тестом. Имеет смысл иметь только одну настройку для каждого тестового прибора - думать о ней как об «перезагрузке» или «подготовке» перед каждым тестом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...