Поделиться через


Параметры среды выполнения

TAEF предоставляет функциональные возможности для передачи параметров среды выполнения в выполняемые тесты.

Использования

Чтобы передать параметр в тест, укажите этот параметр в te.exe в качестве параметра командной строки в следующем формате:

Te.exe /p:ParameterName1=ParameterValue1  /p:ParameterName2=ParameterValue2

Если значение параметра содержит пробелы, введите в кавычки имя параметра и значение параметра:

Te.exe /p:"ParameterName3=The quick brown fox jumps over the lazy dog"

Встроенные параметры

TAEF имеет встроенную поддержку следующих параметров среды выполнения:

  • TestDeploymentDir: тестовый двоичный каталог.
  • TestName: имя выполняемого в данный момент теста.
  • FullTestName: полное имя теста, включая квалификаторы вариантов. Это имя, так как TAEF регистрирует его для StartGroup и EndGroup.
  • TestResult: совокупный наихудший результат тестов, выполненных в область этой функции очистки. В порядке от лучшего к худшему: Пройдено, Не выполнено, Пропущено, Заблокировано, Сбой. Например, если хотя бы один тест в классе был заблокирован, но ни один тест не завершился сбоем, результатом будет "Заблокировано" (доступно только в функциях очистки).

Доступ к параметрам среды выполнения из тестов

Собственные тесты

Параметры среды выполнения доступны в разделе Методы установки, очистки и тестирования. Используйте API RuntimeParameters::TryGetValue, чтобы получить их:

String value;
VERIFY_SUCCEEDED(RuntimeParameters::TryGetValue(L"ParameterName3", value));

Примечание. Чтобы запросить параметры среды выполнения из тестов, необходимо создать ссылку на библиотеку Te.Common.lib.

Управляемые тесты

Параметры среды выполнения доступны в методах установки и тестирования. Чтобы получить их, используйте свойство TestContext класса .

Пример (установка класса или сборки):

[ClassInitialize]

public static void ClassSetup(TestContext context)
{
    String parameterName3  = context.Properties["ParameterName3"];

}

Аналогичным образом, из теста:

[TestMethod]

public void VerifyRuntimeParametersTest()
{
    String parameterName3  = m_testContext.Properties["ParameterName3"].ToString());
}

// Note, that to work with runtime parameters, as well as with your tests,  you need to add
// definition of test context property to your class

private TestContext m_testContext;

public TestContext TestContext
{
    get { return m_testContext; }
    set { m_testContext = value; }
}

Тесты скриптов

Параметры среды выполнения доступны в методах установки, очистки и тестирования. Чтобы получить параметры среды выполнения, определите и создайте экземпляр объекта RuntimeParameters из Te.Common:

<object id="RuntimeParameters" progid="Te.Common.RuntimeParameters" />

После создания экземпляра объекта RuntimeParameters можно использовать метод RuntimeParameters.Contains("<имя> параметра среды выполнения"), чтобы запросить, был ли предоставлен параметр среды выполнения и доступен ли он тесту. Если он возвращает значение true, вы можете использовать RuntimeParameters.GetValue("<имя> параметра среды выполнения"), чтобы получить его. Обратите внимание, что RuntimeParameters.GetValue(...) вызывает исключение, если параметр среды выполнения недоступен. Ниже приведен пример из примера VBScript:

<script language="VBScript">
    <![CDATA[
        Function TestOne()
            dim param
            param = "No runtime param"
            If RuntimeParameters.Contains("param") Then
                    param = RuntimeParameters.GetValue("param")
            End If
            Log.Comment("Param is " + param)

            dim testDir
            If RuntimeParameters.Contains("testDir") Then
                testDir = RuntimeParameters.GetValue("TestDir")
            End If
            Log.Comment("The test harness is running in " + testDir)
        End Function
    ]] >
</script>