SpecFlow:ClassInitialize 和 TestContext

2023-12-30

首先,我是 SpecFlow 的新手。

我有一个功能文件,我已经/想要使用 MSTest 自动运行它作为功能测试,涉及完全设置的服务器、数据访问...... 为此,我必须使用 SpecFlow 的“Given”块中的数据配置服务器,然后启动它。我还必须将一些文件复制到测试的输出目录。

在非 SpecFlow 功能测试中,我使用 ClassInitialize 属性从 TestContext 获取 TestDeploymentDir;像这样的东西:

[ClassInitialize]
public static void ClassSetup(TestContext context)
{
  TargetDataDeploymentRoot = context.TestDeploymentDir;
}

现在,对于 SpecFlow,我无法再使用此属性,因为它已被 SpecFlow 本身使用。 确实存在一些新属性,例如 BeforeFeature ,其作用类似,但它不会将 TestContext 作为参数传递。

我只需要访问 TestContext 的 TestDeploymentDir,以便在真正启动我的功能测试服务器之前复制一些文件 - 没有 SpecFlow 可以轻松完成,但使用 SpecFlow 几乎不可能。

如何处理这个问题?

有可能吗?

非常感谢您的建议!

robert


环境:

  • 视觉工作室2012
  • 规格流 1.9.0.77

自 SpecFlow 2.2.1 起,TestContext 可通过上下文注入获得。 (https://github.com/techtalk/SpecFlow/pull/882 https://github.com/techtalk/SpecFlow/pull/882)

您可以直接从容器中获取它:

ScenarioContext.Current.ScenarioContainer.Resolve<Microsoft.VisualStudio.TestTools.UnitTesting.TestContext>()

或通过上下文注入:

public class MyStepDefs
{
    private readonly TestContext _testContext;
    public MyStepDefs(TestContext testContext) // use it as ctor parameter
    { 
        _testContext = testContext;
    }

    [BeforeScenario()]
    public void BeforeScenario()
    {
        //now you can access the TestContext
    } 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpecFlow:ClassInitialize 和 TestContext 的相关文章

随机推荐

  • 当项目引用存在时,不会填充项目元数据引用

    我正在 MSBuildWorkspace 中加载解决方案 var msWorkspace MSBuildWorkspace Create var solution msWorkspace OpenSolutionAsync solution
  • 来自服务的 $emit 或 $broadcast 事件并在一个(或多个)控制器中监听它们

    我编写了一个简单的示例 我想从服务发出 广播一个事件 并且希望控制器侦听该事件并更改 UI 但我无法使其工作并调试似乎停止的代码在侦听器中 但它不执行该函数 http plnkr co edit eglcq7zELLfKp86DYzOe p
  • 在Java-Android中设置链接可点击

    我正在设计一个应用程序 其中有 TextView 并且基于某些检查条件 我想使 TextView 中的链接 电话号码在 Java 端可点击 我可以这样做吗 我不想让它默认可点击 这是通过在 xml 文件中设置来完成的 android aut
  • InternetOpenUrl 仅在下载整个 HTTP 响应后返回

    我正在使用 WinINET 编写一个下载文件实用程序 并且注意到 特别是在大型下载时 WinINETInternetOpenUrl 调用仅在整个 HTTP 响应下载完毕后返回 我通过使用 Charles 代理工具以及 WireShark 确
  • 如何在没有过滤器列表的情况下使用 Locale::acceptFromHttp?

    locale accept from http是 ICU API 的基本包装uloc acceptLanguageFromHTTP http eckhart stderr org doc icu doc html uloc 8h html
  • Internet Explorer 8 中生成内容的文本对齐

    我正在调试这个网站 http www cityofsleep com并尝试解决 Internet Explorer 中出现的一些问题 大惊喜 我正在为几个链接添加副标题 如下所示 subtitle a after content The S
  • Java 11 上出现 DateTimeParseException 但适用于 Java 10

    以下测试用例在 Java 10 下完美运行 import java time Instant import java time format DateTimeFormatter import java time format DateTim
  • 如何从 Plexus 组件获取当前 MavenSession 或 MavenExecutionRequest

    我创建了一个 Plexus 组件来容纳我想要创建的几个 Mojo 的通用逻辑 我已经能够传递信息 例如localRepository和来自 Mojo 的项目 和测试用例 我想知道是否有办法获得MavenSession or MavenExe
  • 计算符合条件的数组元素个数

    我有一个名为 conference 的 mongoDB 集合 其参与者如下 id 5b894357a0c84d5a5d221f25 conferenceName myFirstConference startDate 1535722327
  • 提取括号内字符串的内容

    我有以下字符串 string Will Ferrell Nick Halsey Rebecca Hall Samantha Michael Pena Frank Garcia 我想以以下形式创建一个元组列表 actor name chara
  • AWS:专用主机VS专用实例,为什么前者比后者贵?

    我正在准备 AWS 的助理架构师考试 但找不到这个问题的解释 为什么专用主机比专用实例贵 我理解两者之间的主要区别 只是在我的大脑中它没有意义 这是我的观点 如果你要求一个专用主 机 你就可以控制整个硬件 CPU RAM 插槽等 您可以使用
  • 微服务架构:跨服务数据共享

    考虑在线商店项目的以下微服务 用户服务保留有关商店用户的帐户数据 包括名字 姓氏 电子邮件地址等 购买服务跟踪有关用户购买的详细信息 每个服务都提供一个用于查看和管理其相关实体的 UI 购买服务索引页面列出了购买情况 每个采购项目应具有以下
  • 如何在 .cargo/config 文件中使用环境变量?

    我在用着 cargo config像这样 target arm linux androideabi linker home rico android ndk r13b toolchains arm linux androideabi 4 9
  • iframe加载后如何隐藏父垂直滚动条?

    我已附上演示该问题的示例代码 我正在 Firefox 3 5 7 中检查这一点 问题是父级 HTML 有一个滚动条 并且它加载一个全屏的 iframe 高度 100 宽度 100 我希望在加载 iframe 后删除父级滚动条 1 这可以吗
  • 在 TypeScript 中迭代接口属性

    我需要将接口属性映射到对象 interface Activity id string title string body string json Object 我目前正在做 headers Array text id value id te
  • ASP.NET MVC2 中的正确错误处理

    我在基本控制器中有一个覆盖 OnException ExceptionContext filterContext 来捕获应用程序中的任何错误 然后记录它们 我在应用程序中遇到的问题是 此特定方法因某些错误而被触发四次 我将引导您完成一个场景
  • 使用多个模型获取进行主干视图渲染

    我需要在带有主干的 html 模板中使用 1 个模型和 1 个集合 但有时 html是在模型之后准备好的 我有 var FormUtilisateurView Backbone View extend initialize function
  • 嵌套集合、php 数组和转换

    我需要将我的嵌套集结构 mysql 转换为这个空间树的json 1 http blog thejit org wp content jit 1 0a examples spacetree html http blog thejit org
  • 从后台线程更新 BindingList<>?

    我想知道如何使用 WPF 中的 Dispatcher 从另一个线程安全地更新我的 BindingList 集合 我也愿意接受其他解决方案 非常感谢 卡韦 我更喜欢安排一个Task到 UI 线程 您可以通过调用获取 UI 线程调度程序Task
  • SpecFlow:ClassInitialize 和 TestContext

    首先 我是 SpecFlow 的新手 我有一个功能文件 我已经 想要使用 MSTest 自动运行它作为功能测试 涉及完全设置的服务器 数据访问 为此 我必须使用 SpecFlow 的 Given 块中的数据配置服务器 然后启动它 我还必须将