是否可以从 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/

10-11 06:16