Можно ли получить доступ к MSTest TestContext из класса привязки шага SpecFlow (1.7.1)? В сгенерированном коде файла функций есть метод FeatureSetup, который принимает TestContext в качестве аргумента, но, по-видимому, ничего с ним не делает.
Доступ к TestContext в классе привязки шага SpecFlow
Ответы (3)
Я нашел способ передать параметры в TestContext, а затем получить к ним доступ из SpecFlow.
Добавив [TestClass], у которого есть свойство TestContext, и пометив его метод AssemblyInit () как [AssemblyInitialize], он будет инициализирован раньше, чем запускать тесты, и MSTest сможет заполнить TestContext.
{
[TestClass]
public class InitializeTestContext
{
public static TestContext Context { get; private set; }
[AssemblyInitialize]
public static void AssemblyInit(TestContext context)
{
Context = context;
}
}
}
А затем можно получить к нему доступ из моего класса BaseSteps:
{
public abstract class BaseSteps : TechTalk.SpecFlow.Steps
{
public string GetTestEnvironment()
{
TestContext testContext = InitializeTestContext.Context;
string testEnvironment = testContext.Properties["Environment"].ToString();
return testEnvironment;
}
}
}
Гаспар Надь ответил в группе Google SpecFlow: https://groups.google.com/group/specflow/browse_thread/thread/5b038e3e283fdbfe# а>
По умолчанию нет. У нас есть независимый от поставщика тестов ScenarioContext.Current, который можно использовать для аналогичных целей.
Далее к ответу Валентина. Вот пример генератора тестов, который будет добавлен в контекст теста. . Его из той же группы Google.
Гаспар Надь сказал, что это может быть добавлено к провайдеру, который поставляется в specflow.
Итак, чтобы ответить на вопрос ОП, да, это возможно.