标签: specflow

如何阻止SpecFlow显示计时信息

如何配置SpecFlow,使其不会将时序信息显示为测试文本的一部分,例如

- > done:Steps.ThenIWillBeDeniedAccess()(0.0s)

干杯.雅.

specflow

3
推荐指数
1
解决办法
308
查看次数

我们如何在Gherkin场景(SpecFlow/BDD/Selenium)中实现'Given'?

我们正在应用BDD并使用SpecFlow和Selenium.验收标准在Gherkin中规定.

我对Given子句有疑问.

一个例子可能是......

  • 鉴于我在订单详情页面上
  • 当我提交订单时
  • 然后我看到订单摘要

因此,对于'鉴于我在订单详情页面',我们必须登录并准备好提交订单.但是我们如何达到这一点呢?

如果我们已经有相关的现有SpecFlow步骤,我们可以使用这些(通过Selenium)来找到正确的点 - 这样的事情......

  • 鉴于我是注册用户
  • 我在登录页面上
  • 然后我使用我注册的用户名和密码登录
  • 我创建了一个新订单
  • 我搜索XYZ产品
  • 然后我将产品添加到订单中
  • 然后我选择订单详情页面
  • 当我提交订单时
  • 然后我看到订单摘要

我们甚至可以将步骤代码中的所有步骤放在"鉴于我在订单详情页面上"

但是我们是否有权使用Selenium来实现Given?或者我们应该找到一些方法来设置会话/数据库中的所有相关状态/数据而无需通过UI?

我怀疑这里没有对错.我不得不说它对我们来说非常好,但我们一直在寻求改进我们的方法.因此,非常有兴趣听取任何有实际经验的人的意见.

我希望Stack Overflow是正确的论坛(不能不认为它不是 - 如果是这样,请不要让我失望!)...

bdd selenium specflow gherkin

3
推荐指数
2
解决办法
1962
查看次数

SpecFlow + Selenium-WebDriver:跨步骤共享WebDriver?

假设我有一个使用两个不同类中包含的步骤的场景.有没有办法让他们俩都能在IWebDriver不经过同一个实例的情况下拥有句柄ScenarioContext.Current["webdriverVariableName"]

那太难看了.有更干净的方式吗?

我打算创建一个具有public static IWebDriver在每个场景开始时分配的属性的类,这样我的所有步骤都可以引用它,但是当我开始并行运行它时,我认为这不会起作用,因为每个场景将覆盖全局驱动程序.

bdd selenium webdriver specflow

3
推荐指数
1
解决办法
6497
查看次数

用户故事应该用Gerkhin格式编写吗?

我们用标准规定编写用户故事作为XI想要Y以便Z.现在随着BDD和Gerkhin语言格式的流行以指定要求,是否有人有将用户故事转换为gerkhin格式的经验.您是否发现以这种格式从业务中获取需求更容易,更直观,您是否在此过程中获得了任何好处?

bdd agile user-stories specflow

3
推荐指数
1
解决办法
1214
查看次数

传递代码块作为参数并在try catch中执行

TL; DR:我想传递一些代码,然后在try catch Pseudo代码中执行:

void ExecuteInTryCatch(BlockOfCode)
{
   try
   {
      execute BlockOfCode with possible return value
   }
   catch (MyException e)
   {
      do something
   }
}
Run Code Online (Sandbox Code Playgroud)

长版本:我正在编写Web应用程序的自动化测试,并希望执行一些代码,这些代码将捕获可能由非确定性原因导致的某些异常,并在最终抛出异常之前重试执行该代码一段时间.我已经看过可能为此目的使用委托,但我很困惑如何实现这一点,我从未使用过lambda表达式,这更令人困惑.

目标是能够将此代码重用于各种硒动作.对于Ruby而言,这是相当简单的,但在C#中,并非如此.

c# specflow selenium-webdriver

3
推荐指数
2
解决办法
2389
查看次数

我们如何在步骤定义中检索/获取功能和方案标题?

我们如何在步骤定义中检索/获取功能,方案标题和标签名称?

例如,我有一个功能文件booksearch,其中包含一项功能:

Feature: Book Search
Scenario: Title should be matched

I perform a simple search on 'abc'
------------------------
------------------------


    [When(@"I perform a simple search on '(.*)'")]
    public void WhenIPerformASimpleSearchOn(string searchTerm)
    {
        --------
        ----------
        //custom log    
        WriteLogs(int stepNum,string scenarioName,string tagname,string stepDescription,string stepResult)
    }
Run Code Online (Sandbox Code Playgroud)

如何在给定方案的步骤定义中检索/获取要素和方案标题和标记名称?

我们使用MSTest作为单元测试提供商.

mstest scenarios specflow gherkin

3
推荐指数
1
解决办法
3140
查看次数

运行SpecFlow报告 - 错误 - 元素<Target>中的属性"Label"无法识别

我一直在下面发现教程这里的SpecFlow测试报告生成.

我的问题是,当我运行该工具时,我收到以下消息:

元素Target中的属性"Label"无法识别

我找到了一些可能的解决方案,其中没有一个在这里工作

我能够显示我正在运行版本4.x,因为当我使用Visual Studio 2012运行MSBuild时,命令提示符我可以看到以下内容:

Microsoft(R)Build Engine版本4.0.30319.17929 [Microsoft .NET Framework,版本4.0.30319.18052]

我已按照此处的建议创建了配置文件

但不幸的是我仍然得到错误.该项目在git本地运行,过去使用配置文件修复了此问题,但是自从交换到VMware虚拟机后,它现在又重新出现了.

我还右键单击>属性,表明该文件使用的是.NET 4.0,另外还创建了一个直接链接到MSBuild目录的环境变量.我花了很长时间浏览互联网,但无法实现这一点.请帮忙!

非常感谢您提供的任何帮助,

干杯!

msbuild automation unit-testing specflow visual-studio-2012

3
推荐指数
1
解决办法
1119
查看次数

如何使用BDD构建CRUD测试

我陷入了困境,试图找出构建CRUD测试的最佳方法.在我的应用程序中,用户可以创建几种类型的"任务".我目前的实现类似于以下内容:

Scenario:  Create Task-Type A
Given I am on a user's profile page
And Have access to create tasks
When I create a new task with a unique title and description
Then The confirmation prompt should display

Scenario:  Read the Task-Type A
Given A new task was created
When I search the text on the page for the unique title
Then I should find the task
And All the details of the task should match what was created …
Run Code Online (Sandbox Code Playgroud)

bdd nunit automated-tests crud specflow

3
推荐指数
2
解决办法
1778
查看次数

BDD SpecFlow场景类型

我一直在编写一些BDD场景并从中编写自动化测试一段时间,但我仍处于发现阶段.

我可以看到Visual Studio为我提供了编写场景,场景大纲或场景模板的选项.

我已经想出了Scenario和Scenario Outline之间的区别(第一次运行一次,第二次运行的例子就像你放的那么多 - 如果我错了,请纠正我或添加一些东西).

但是我发现关于"场景模板"的信息很少.谁有人解释这个区别?谢谢!

bdd specflow gherkin

3
推荐指数
1
解决办法
1698
查看次数

Specflow - 完成所有测试后关闭浏览器

我想按照功能示例逐个执行两个测试.它工作但我不知道如何在第二次测试完成时关闭浏览器.

我已经尝试过AfterFeature钩子,但它没有用.我刚刚登录.我想在这一刻关闭浏览器

这是代码

public class LoginSteps
    {
        [BeforeScenario("LoginProperly")]
        public static void BeforeScenario()
        {
            Browser.Initialize();
        }

        [AfterScenario("LoginProperly")]
        public static void AfterScenario()
        {

            Browser.ClearCache();
        }

        [AfterFeature("LoginProperly")]
        public static void AfterFeature()
        {
          Browser.Quit();

        }


        [Given(@"I navigate to login page")]
        public void GivenINavigateToLoginPage()
        {
            Browser.Wait();
            Pages.Navigation.GoToSignIn();

        }

        [Given(@"I have completed the form with '(.*)' and '(.*)'")]
        public void GivenIHaveCompletedTheFormWithAnd(string email, string password)
        {
            Pages.Login.LogIn(email, password);
        }

        [When(@"I press Submit")]
        public void WhenIPressSubmit()
        {
            Pages.Login.ClickLogin();
        }

        [Then(@"I should see my account panel")]
        public void ThenIShouldSeeMyAccountPanel() …
Run Code Online (Sandbox Code Playgroud)

c# bdd google-chrome specflow selenium-webdriver

3
推荐指数
1
解决办法
1400
查看次数