标签: specflow

SpecFlow/Gherkin在Sublime Text 2中突出显示

有没有人知道是否有任何Sublime Text 2软件包可用于为SpecFlow/Gherkin规范文件启用语法高亮显示?

specflow gherkin sublimetext sublimetext2

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

如何以特定域用户身份运行Internet Explorer Selenium测试?

我有一个ASP.NET MVC网站,它使用Windows身份验证来控制访问.我希望有一个specflow selenium测试,通过尝试以非授权用户身份访问该站点来检查配置是否正确.

由于我们使用域帐户来控制访问权限,因此没有用户名/密码登录屏幕.浏览器会自动将当前用户的凭据传递给站点.

因此,对于我的Selenium测试,我需要能够以特定用户身份运行Internet Explorer.

我发现了一些关于Windows模拟的文章,我可以在运行测试期间切换到我的测试用户(使用http://support.microsoft.com/kb/306158中的代码).然而,如果我然后创建一个InternetExplorerDriver它使用我的凭据而不是测试用户启动Internet Explorer(尽管这个问题和答案表明它应该工作https://sqa.stackexchange.com/questions/2277/using-selenium-webdriver- with-windows-authentication).

我也可以明确地启动Internet Explorer进程作为我的测试用户,但是我看不到将InternetExplorerDriver绑定到已经运行的Internet Explorer进程的方法,所以这可能是一个死胡同.

我的代码基本上来自上面的MSDN页面.在调试器中,我可以看到WindowsIdentity.GetCurrent().Name在测试的所有步骤中都是"testUser".

namespace MyProject.Specs
{
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
using System;
using System.Runtime.InteropServices;
using System.Security.Principal;
using TechTalk.SpecFlow;

[Binding]
public class AuthorisationSteps
{
    public const int LOGON32_LOGON_INTERACTIVE = 2;
    public const int LOGON32_PROVIDER_DEFAULT = 0;
    private static WindowsImpersonationContext impersonationContext;
    private static IWebDriver driver;

    [BeforeScenario]
    public static void impersonateUser()
    {
        if (!impersonateValidUser("testUser", "testDomain", "password"))
        {
            throw new Exception();
        }
        driver = new InternetExplorerDriver();
    }

    [AfterScenario] …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc selenium windows-authentication specflow selenium-webdriver

15
推荐指数
2
解决办法
4779
查看次数

在Specflow中我可以运行一个测试作为另一个测试的一个步骤吗?

TL; DR; 如何创建一个将另一个测试调用为第一步的specflow测试?

Given I already have one specflow test
And I want to run another test that goes deeper than the first test  
Then I create a second test that runs the first test as its first step
And I add additional steps to test the deeper functionality
Run Code Online (Sandbox Code Playgroud)

对不起,那里有一点点幽默幽默.

例如,我已经有一个测试可以创建销售:

Given I want to create a sales order
And I open the sales order page
And I click the add new order button
Then a new sales order is …
Run Code Online (Sandbox Code Playgroud)

c# automated-tests unit-testing dry specflow

15
推荐指数
2
解决办法
1万
查看次数

SpecFlow可重复使用的步骤定义

有没有办法让SpecFlow重用步骤定义?

在其他工具中,我使用了包含诸如的方法的GivenWhenThen基类

WhenAnOrderIsCreated - 这将通过继承类来使用受保护的订单成员.

似乎无法使用SpecFlow(似乎不喜欢继承)

有没有办法分享各个功能的步骤?

非常感谢

c# bdd specflow

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

SpecFlow错误地使用NUnit

我(今天)第一次尝试过SpecFlow.我正在玩VS2010 Pro中创建一个新的类库并添加一个SpecFlow功能定义文件.

事实上,集成似乎没有正常工作,具有各种不同的错误.我选择了MsTest作为测试运行器,因为我不能打扰调用NUnit(我想长期使用NUnit,但目前我只想让一些BDD代码工作).然而,生成的代码文件继续引用NUnit - 这显然是错误的,因为我刚刚告诉SpecFlow使用MsTest运行.我已经完成了我能想到的再次调用代码生成的所有内容,包括使用工具>选项> SpecFlow中选择的MsTest选项创建一个全新的类库项目.

如果我将测试运行器字段设置为"自动"并右键单击功能文件,然后选择"运行SpecFlow方案",则会收到错误消息"无法找到匹配的测试运行器".

如果我不是测试运行字段更改为MSTest的,我得到做同样的事情不同的错误消息 - "未设置为一个对象的实例对象参考".我对此并不感到惊讶,因为它仍在尝试运行NUnit测试,即使我已明确要求MsTest,但显然它不应该nullref并将其呈现给用户.

我究竟做错了什么?文档没有帮助,据我所知,没有FAQ.

编辑#1:我已经确定App.Config使用该字段提供了我正在寻找的实际设置<unitTestProvider name="MsTest" />.我可以看到发生了什么 - Visual Studio选项菜单中的字段似乎没有修改您当前正在处理的项目.事实是,这使得它看起来像该领域根本不做任何事情.我现在说服SpecFlow生成MsTest类并使用MSTest运行程序运行.

所以现在问题变成了一个稍微不同的问题:工具>选项> SpecFlow>测试运行工具字段有什么(如果有的话)?

nunit specflow

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

在specflow中传递变量数组

有没有办法传递参数数组而不是单独传递每个参数?

例如,我有以下场景:

When i login to a site
then <firstname>, <lastname>, <middleName>, <Desingation>, <Street>, <Apartmentno> are valid
Run Code Online (Sandbox Code Playgroud)

列表可以在上面继续.相反,我可以在数组中传递所有上述变量吗?

arrays variables specflow

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

我无法重新生成文件背后的 specflow 代码

当我编辑specflow功能文件测试时,它不会更新代码隐藏文件。当我尝试通过右键单击项目并选择手动重新生成代码隐藏文件时,'Regenerate Feature Files'出现错误:

错误:在此系统上找不到自定义工具“specflowsinglefilegenerator”

我发现这通常意味着我没有安装Specflow扩展。但是,当我在 Visual Studio 中查看扩展和更新时,我可以看到'Specflow for Visual Studio 2017'已安装。

如果有人知道我能做什么,那将非常有帮助。当我将存储库重新克隆到一个新文件夹时,这开始了。

我也尝试过清理和重建。关闭视觉工作室。卸载并重新安装 Specflow 扩展。从 2019 年到 2017 年从 Visual Studio 切换。重新启动我的计算机。更新规范流。删除 specflow 缓存文件并强制文件重新生成。我仍然没有对代码隐藏文件进行更改。

visual-studio specflow test-explorer feature-file

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

从单元测试生成文档

我们有机器规格,我们有specflow.Specflow将文本描述转换为单元测试.但是有没有任何工具可以使用NUnit灯具并创建类似于Specflow输入的文本描述?基本上与specflow正在做的相反.

我准备调整关于灯具名称和测试方法名称的单元测试格式.但我宁愿不使用任何超级花哨的语法,如机器规格,而只是简单的NUnit测试夹具.原因是测试很重要,需要可重构等.文本格式不像单元测试那样重构友好.

例如:

[TestFixture] 
class Given_Four
{
    private Calculator c;

    [SetUp]
    public void Setup()
    {
        c = new Calculator(4);
    }

    [Test]
    public void When_adding_two_then_sum_should_be_six()
    {
        c.Add(2)
        Assert.That(c.Display, Is.EqualTo(6));
    }
}
Run Code Online (Sandbox Code Playgroud)

再次,这只是一个例子.基本上任何格式的都可以工作,只要该工具创建该测试夹具的文本描述.我一直在谷歌上搜索,但一无所获.难道知道有这样的工具吗?

c# nunit unit-testing specflow

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

我可以在specflow中更改Gherkin格式样式吗?

我可以在specflow中更改Gherkin格式样式吗?我怎样才能做到这一点?

formatting specflow gherkin

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

无法从Visual Studio 2012 Ultimate Edition运行SpecFlow方案

我安装了Visual Studio 2012 Ultimate Edition并配置了SpecFlow.我使用以下配置在config.xml文件中运行测试:

<specFlow>
<unitTestProvider name="MsTest" /> 
</specFlow>
Run Code Online (Sandbox Code Playgroud)

我能够创建睾丸并正确编译.但是当我尝试使用选项"运行SpecFlow场景"或"调试SpecFlow场景"从上下文菜单运行场景时,我无法看到任何操作.它只是说"构建成功",之后没有其他事情发生.

有人可以解释是否有其他方式执行方案?

提前致谢.

specflow visual-studio-2012

13
推荐指数
2
解决办法
2万
查看次数