Visual Studio передает значения конфигурации в UnitTests - PullRequest
0 голосов
/ 10 января 2011

Я использую модульные тесты MSTest (Visual Studio) для запуска Selenium для проверки работоспособности веб-сайта.Что я хочу сделать, так это уметь передавать некоторые переменные конфигурации в мои тесты.Такие вещи, как адрес сервера, тип браузера Selenium ... и т. Д.Я пытался использовать TestContext, но, похоже, нет ничего другого, кроме как использовать LoadTests для передачи этой информации.

Я также пытался использовать Spring.NET, но это тоже не помогло.

Есть идеи по использованию TestContext?Или, может быть, что-то еще.

Спасибо

1 Ответ

1 голос
/ 01 февраля 2011

Я думал, что поделюсь тем, что я закончил делать.Я использовал Spring.net, чтобы внедрить настройки в класс SeleniumSettings следующим образом:

<objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd" >
  <object id="Settings" type="Sample.SeleniumSettings, Sample" singleton="true">
    <property name="Server" value="localhost"/>
    <property name="Port" value="4444"/>
    <property name="Browser" value="*firefox" />
    <property name="Url" value="http://website.com"/>
    <property name="Email" value="sample@website.com"/>
  </object>
</objects>

Это добавит SeleniumSettings в свойство под названием «Настройки» в классе Test.Тесты должны наследоваться от AbstractDependencyInjectionSpringContextTests и реализовывать;

protected override string[] ConfigLocations 

Класс настроек выглядит следующим образом:

public class SeleniumSettings
{
    public const string DefaultEmailAddress = "sample@website.com";
    public const string DefaultServerAddress = "localhost";
    public const string DefaultProtocol = "http://";
    public const string DefaultEndPoint = "/";

    public string Server = DefaultServerAddress;
    public int Port = 4444;
    public string Browser = "*firefox";
    public string Url = "http://localhost";
    public string Email = DefaultEmailAddress;

    public ISelenium factory()
    {
        return new DefaultSelenium(Server, Port, Browser, Url);
    }
}

Затем используйте SeleniumSettings.factory (), чтобы получить объект DefaultSelenium для запускаваши тесты с.

В документации Selenium есть некоторая информация по этому вопросу, но он слишком глубоко погружается и пропускает основную информацию, необходимую для настройки этого материала.

Сначала я пытался внедрить объект DefaultSelenium в класс, но у меня были проблемы с внутренним сбоем Selenium.Похоже, что он не был создан инъекцией Spring.net.

Надеюсь, это кому-нибудь поможет.

...