标签: specflow

在 Visual Studio 中未为 SpecFlow 功能文件生成 cs 文件

我正在 Visual Studio 2019 中进行 SpecFlow 测试。添加功能文件时不会生成设计器文件 (.cs)。

适用于具有类似配置和 nuget 包的其他计算机。

设计器文件应该自动生成。

testing visual-studio specflow

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

如何在SpecFlow中创建功能以满足多依赖要求

我正在学习SpecFlow并且正在做一个简单的Com-Sci标准FizzBu​​zz项目.给定一系列数字替换可被3整除,Fizz替换可被5整除,Buzz替换可被3和5整除,使用FizzBu​​zz.

这是一个非常简单的应用程序,但它确实为我提出了一个问题.如何编写功能来测试多个requiremts,它们都是通过API上的一个方法调用触发的?例如FizzBuzz.Replace(1, 100); ,使用Replace方法代码,API调用如下所示

public static string Replace (int min, int max)
{
       if (IsDiv3 && IsDiv5) {...}
       if (IsDiv3) {...}
       if (IsDiv5) {...}
       ...
}
Run Code Online (Sandbox Code Playgroud)

我在SpecFlow中的功能如下:

Feature: FizzBuzz
    In order to display Fizz Buzz in       range of numbers
    As a user I want to be able to see Fizz Buzz replace certain numbers

Scenario: Replace muliples of three and five with Fizz, Buzz or FizzBuzz
    Given I have a range of numbers from 1 to 15
    When I …
Run Code Online (Sandbox Code Playgroud)

.net c# nunit specflow

0
推荐指数
1
解决办法
2929
查看次数

替代Capybara for Specflow

我打算使用Specflow for .NET.我来自RoR背景,我使用过Cucumber和Capybara.据我所知,Specflow类似于Cucumber; 但是,它是否具有Capybara提供的功能?

谢谢!

cucumber capybara specflow

0
推荐指数
1
解决办法
2960
查看次数

设置输入文本框文本,然后在Specflow&Selenium中检索它

有人可以向我解释为什么在下面的.Net Specflow代码中,如果我的textboxElement的文本为空,那么我发送密钥给它,为什么文本仍然是空的?(当屏幕上文本框的文本发生变化时):

textboxElement.SendKeys("John Smith");
var text = textboxElement.Text;
// text == ""
Run Code Online (Sandbox Code Playgroud)

是否无法"刷新"元素的值?(或者我只是错过了一些非常明显的东西:-))

.net specflow selenium-webdriver

0
推荐指数
1
解决办法
4738
查看次数

如何在angularJS前端使用硒自动化测试

我正在测试用.NET Backend和AngularJS前端编写的应用程序.使用Selenium编写一些自动化测试和specflow集成(C#).

我已经完成了初始设置,但我遇到的最大困难之一就是检测动态Web元素.由于应用程序使用的是Angular,因此除非我尝试使用XPath,否则无法轻松识别大多数元素.Selenium不支持化合物类名称,即"class ="ng-pristine ng-valid ng-touching""并且ID不断变化.

有没有更好的方法呢?还是我可以用来让我的生活更轻松的图书馆?

任何输入赞赏:)

selenium automated-tests specflow angularjs selenium-webdriver

0
推荐指数
1
解决办法
3600
查看次数

如何从调用基础构造函数的类继承?

所以我继承了这个用于Android的Xamarin应用程序的测试平台,该应用程序用C#编写,用于Specflow.我对Xamarin一无所知,对Specflow知之甚少,自从我在C#编写任何代码以来已经10年了,所以请耐心等待.试图创建一个继承自Button的类,我得到这个错误:

There is no argument given that corresponds to the required formal parameter 'controlIdQuery' of 'Button.Button(Func <AppQuery, AppQuery>)'
Run Code Online (Sandbox Code Playgroud)

我的派生类看起来像这样:

public class Buttons : Button
{
}
Run Code Online (Sandbox Code Playgroud)

Button类看起来像这样:

public class Button : ControlBase
{ 
    public Button(Func<AppQuery, AppQuery> controlIdQuery) : base(controlIdQuery) { }
}
Run Code Online (Sandbox Code Playgroud)

另外,按钮的ControlBase看起来像这样:

public abstract class ControlBase : AppBase
{
    public Func<AppQuery, AppQuery> controlIdQuery;

    public AppResult[] _appresult;
    public static IApp _appelement;
    public string _methodName;
    public object _argument;
    public bool waiting;
    public static Platform _appPlatform;

    public ControlBase(Func<AppQuery, AppQuery> idQuery)
    {
    } …
Run Code Online (Sandbox Code Playgroud)

c# oop inheritance specflow xamarin

0
推荐指数
1
解决办法
74
查看次数

SpecFlow 未发现测试或我收到错误消息

对于初学者:我总体来说是 Visual Studio 和 SpecFlow 的新手。

根据 SpecFlow 的入门文档,我得到了 2 个不同的结果,具体取决于我启动的项目类型。

单元测试项目:在此类项目中,运行者根本无法识别测试。仅运行“SpecRun评估”测试。

MSTest 测试项目(.NET Core):在这种类型的项目中,测试总是通过,但我确实在测试输出中收到错误:“值不能为空。参数名称:消息”,这是由“生成器”引起的

我在典型的 Windows 10 Pro 上完成所有这些操作。我在 VS 2017 和 2019 上都尝试过。我尝试过重新执行整个过程,以防我错过了什么。还尝试更新软件包。也许应该注意的是,单元测试项目不会生成 App.config 文件。

using System;
using TechTalk.SpecFlow;

namespace Tests.Steps
{
    [Binding]
    public class CalculatorSteps
    {
        [Given(@"I have entered (.*) into the calculator")]
        public void GivenIHaveEnteredIntoTheCalculator(int p0)
        {
            Console.WriteLine(p0);
        }

        [Given(@"I have also entered (.*) into the calculator")]
        public void GivenIHaveAlsoEnteredIntoTheCalculator(int p0)
        {
            Console.WriteLine(p0);
        }

        [When(@"I press add")]
        public void WhenIPressAdd()
        {
            Console.WriteLine("add pressed");
        }


        [Then(@"the result …
Run Code Online (Sandbox Code Playgroud)

c# specflow specrun

0
推荐指数
1
解决办法
2691
查看次数

运行 SpecFlow 2.2.0 需要哪个 Specflow Visual Studio 插件版本?

我无法确定运行 SpecFlow 的旧版本 2.2.0 需要哪个版本的 SpecFlow Visual Studio 插件

由于管理限制,我们不能使用 2.2.0 以外的任何其他 SpecFlow 版本

我已经尝试了几个旧版本的 VS 插件,但是使用我现有的代码(基于 SpecFlow 2.2.0),所有这些都会导致错误:

Error   CS1029  #error: 'Version conflict - SpecFlow Visual Studio extension 
attempted to use SpecFlow code-behind 
generator 1.9, but project 'XXXXXXX' references SpecFlow 2.2.'
Run Code Online (Sandbox Code Playgroud)

我想我需要一些插件版本,它可以在 2.2 内部使用

我不能使用 SpecFlow.Tools.MsBuild.Generation 包,因为 2.2.0 尚不支持。

任何人都可以帮助我吗?SpecFlow Visual Studio 插件的发布历史可以在这里找到:

https://github.com/techtalk/SpecFlow.VisualStudio/releases

编辑

我使用 Visual Studio 2017 (15.9.6)

在“包”文件夹中有 SpecFlow-2.2.0 和 SpecFlow.MsTest-2.2.0。我删除了它们,删除了 nuget 包缓存并重建了解决方案。问题依然存在。

specflow

0
推荐指数
1
解决办法
471
查看次数

BeforeScenario 和 AfterScenario 挂钩在 Specflow 中不起作用

我的 SeleniumSteps.cs 代码中有以下代码我试图让 AfterScenario 在调试这些测试时触发

using PrivateDomain;
using Machine.Specifications;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using System;
using System.Collections.Generic;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using TechTalk.SpecFlow;

namespace Functional.Steps
{
    public class SeleniumSteps : PrivateDomain.Steps.SeleniumSteps
    {
        #region Hooks
        [BeforeScenario]
        public void Before()
        {
            // before 
        }

        [AfterTestRun, Scope(Tag = null)]
        public new static void AfterTestRun()
        {
            // after testrun
        }

        [AfterScenario]
        public void AfterScenarioErrorScreenshot()
        {
            // after scenario
        }

        #endregion
    }
}





using OpenQA.Selenium;
using TechTalk.SpecFlow;

namespace PrivateDomain.Steps
{
    [Binding] …
Run Code Online (Sandbox Code Playgroud)

selenium specflow

0
推荐指数
1
解决办法
2697
查看次数