是否可以从 SpecFlow (1.7.1) 步骤绑定(bind)类中访问 MSTest TestContext?
在功能文件的生成代码中,有一个方法 FeatureSetup 将 TestContext 作为参数,但显然没有对它做任何事情。
最佳答案
我找到了一种将参数传递给 TestContext 然后从 SpecFlow 访问它们的方法。
通过添加具有 TestContext 属性的 [TestClass] 并将其 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;
}
}
}
关于mstest - 在 SpecFlow Step Binding 类中访问 TestContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7334452/