Coded ui tests BeforeFeature/AfterFeature在使用SpecFlow和编码UI时不起作用

Coded ui tests BeforeFeature/AfterFeature在使用SpecFlow和编码UI时不起作用,coded-ui-tests,specflow,Coded Ui Tests,Specflow,我无法为我的功能文件定义[BeforeFeature]/[AfterFeature]挂钩。正在测试的应用程序是WPF独立桌面应用程序 如果我使用[BeforeCasenario]/[AfterScenario]一切正常,应用程序启动时没有任何问题,设计的步骤正确执行,应用程序关闭 一旦我对[BeforeFeature]/[AfterFeature]标记使用相同的步骤,应用程序启动,测试失败,原因如下: 启动此进程时发生以下错误:对象引用未设置为对象的实例 以下是一个例子: [绑定] 公共课设置

我无法为我的功能文件定义
[BeforeFeature]
/
[AfterFeature]
挂钩。正在测试的应用程序是WPF独立桌面应用程序

如果我使用
[BeforeCasenario]
/
[AfterScenario]
一切正常,应用程序启动时没有任何问题,设计的步骤正确执行,应用程序关闭

一旦我对
[BeforeFeature]
/
[AfterFeature]
标记使用相同的步骤,应用程序启动,测试失败,原因如下:

启动此进程时发生以下错误:对象引用未设置为对象的实例

以下是一个例子:

[绑定]
公共课设置
{   
[在场景之前(“设置场景”)]
公共静态void BeforeAppScenario()
{
UILoader.General.StartApplication();
}
[赛后(“设置场景”)]
公共静态无效AfterAppScenario()
{
UILoader.General.CloseApplication();
}
[前置功能(“设置功能”)]
public static void BeforeAppFeature()
{
UILoader.General.StartApplication();
}
[后功能(“设置功能”)]
公共静态无效AfterAppFeature()
{
UILoader.General.CloseApplication();
}
}
StartApplication
/
CloseApplication
已记录,并使用编码的UI测试生成器自动生成:

public void StartApplication()
{
//启动“%ProgramFiles%”。。。
ApplicationUnderTest Application=ApplicationUnderTest.Launch(this.StartApplicationParams.ExePath,this.StartApplicationParams.AlternativeExePath);
}
公共类StartApplicationParams
{    
公共字符串ExePath=“C:\\Program Files…”
公共字符串AlternateExePath=“%ProgramFiles%\\…”
}
值得注意的是:我对SpecFlow非常陌生。 我不明白为什么我的测试在
[BeforeFeature]
中失败,而在
[BeforeScenario]
中运行良好


如果有人能帮我解决这个问题,那就太好了。谢谢

我最近遇到了类似的问题。不确定这是否还能帮助你,但它可能对偶然发现这个问题的人有用

要使BeforeFeature\AfterFeature起作用,需要对功能本身进行标记,仅标记特定场景将不起作用

您的功能文件应如下所示开始:

@setup_feature
Feature: Name Of Your Feature

@setup_scenario
Scenario: ...

你也可以发布异常的堆栈跟踪吗?哪一行出错/是外部代码/运行代码的最后一行是什么?支持哪一版本的specflow?它在2.4.1上对我不起作用