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 的相关文章

  • 自动映射器多对一映射

    我想将一种类型映射到另一种类型 但我在第一种类型中有多个属性 需要获取其他类型的一个属性 例如 public class A public int a get set public int b get set public int c ge
  • Hololens 应用程序将不再构建 - 引用元数据文件丢失且找不到 c-Sharp.firstpass

    我已按照 Microsoft 在其多个项目下列出的确切步骤进行操作微软全息 学院 https developer microsoft com en us windows holographic academy教程 我完成了所有这些 并且从创
  • 创建文件并使用内存流保存到其中

    如何创建文件并使用内存流写入文件 我需要使用内存流来防止其他线程尝试访问该文件 我试图保存到文件的数据是 html 如何才能做到这一点 假设您的意思是如何将文件的内容复制到内存流 如果您使用的是框架4 var memoryStream ne
  • JQuery、ASCX 和 webmethods 似乎不起作用

    我有一个级联下拉列表 其中 3 个 类型 类别和子类别 首先类型负载 然后选择类型 类别负载以及选择类别 子类别负载 我还有 2 个按钮 添加类别 和 添加子类别 单击这些按钮后 我调用 JQuery 模态表单来添加它们 我在代码后面使用
  • 使用 c11 标准和 clang 来使用 strcpy_s

    我正在运行 OS X Sierra 并尝试编译一个使用的 c 程序strcpy s 但是我安装的 clang 编译器使用的是 c99 标准 但是据我读到的 https embeddedgurus com barr code 2017 08
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强
  • 合并多边形的高效算法

    我有一个多边形列表 在这个列表中 一些多边形重叠 或者接触其他多边形 我的任务是合并所有相互重叠或接触的多边形 我有一个union执行此操作的方法 做到这一点最有效的方法是什么 我目前能想到的是循环遍历多边形列表 检查合并列表以查看该多边形
  • 不要覆盖 Azure Blob 存储

    我有一种将文件添加到 Azure Blob 存储的方法 问题是我试图指定一个条件 在该条件下它不会覆盖 blob 而只是添加到其中 我正在尝试使用参数访问条件 但是 VS 说这个方法不能采用两个参数 async void archiveNe
  • 在“delete this;”语句期间发生了什么?

    请考虑以下代码 class foo public foo foo void done delete this private int x 以下两个选项中发生了什么 并且有效吗 选项1 void main foo a new foo a gt
  • 使用 Rhino Mocks 模拟集合

    所以我猜这是很多人想做的事情 模拟集合 过去我用 Rhino 做过这样的事情 var col mock MockRepository GenerateMock
  • 如何将8字节的十六进制数输入到char数组中?

    我想生成以以下开头的十六进制数字序列07060504003020100 下一个数字是0f0e0d0c0b0a0908等等按这个顺序 当我使用unsigned long long int并输出数据的前4位 这意味着0被截断 它打印706050
  • 使用 itextSharp 5.3.3 对 Pdf 文档进行数字签名和验证

    我正在尝试使用 iTextSharp 5 3 3 在服务器 c 上进行数字签名和验证 pdf 文档 我使用 DigiSign 在线工具 生成了 Pfx 文件 然后使用 Windows 生成证书 cer 文件
  • 如何声明返回相同类型的 Func Delegate 的 Func Delegate?

    我想编写一个方法 该方法可以完成一些工作 并最终返回另一个与原始方法具有相同签名的方法 这个想法是根据前一个字节值顺序处理字节流 而不进行递归 通过这样调用它 MyDelegate executeMethod handleFirstByte
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • ASP Net Core 属性路由和双正斜杠

    正如所指出的here https stackoverflow com a 20524044 3129340 URL 中包含双斜杠是有效的 我有一个使用属性路由的 ASP Net Core 项目 一个名为GroupController用于处理
  • 如何获取 EF 中的实体更改增量?

    我只需要获取已更改字段的列表 数据存储区是 ssce 因此没有可用的触发器 EF 是否支持获取列表或构建通用组件 根据上下文的类型和生成的实体 您可以通过多种不同的方式来完成此操作 如果对象继承自 Entity 或 POCO 您可以使用Ob
  • 使用智能指针在大型对象集合中创建多个索引

    我正在为一个大型对象集合创建多个索引 即使用不同的键 对象可以改变 集合可以缩小和增长 到目前为止我的想法 保留某种指向对象的指针的多个集合 使用set代替map以获得更好的封装 使用 unordered set 可以很好地扩展大型数据集
  • 如何通过反射获取透明代理的属性值?

    我的代码接收透明代理而不是原始实例 虽然这var type obj GetType 产生原始类的类型 下面的代码抛出TargetException 对象与目标类型不匹配 var value property GetValue obj nul
  • GCC编译非常慢(文件大)

    我正在尝试编译一个大的 C 文件 专门用于 MATLAB mexing C 文件大约 20 MB 可用来自 GCC 错误跟踪器 https gcc gnu org bugzilla attachment cgi id 36632如果你想玩一
  • WPF - 将窗口置于前面

    我有一个 WPF 窗口 我没有关闭它 相反 我执行 Hide 和 Show 它 现在 当我双击记录上网格中的主窗口时 这将触发 Show 窗口 该窗口将始终显示在主窗口后面 我尝试过以下方法 但没有成功 view Show view Act

随机推荐

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

    我正在 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 块中的数据配置服务器 然后启动它 我还必须将