Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止Specflow报告中显示Specflow步骤参数,即&x27;密码';_C#_Selenium_Selenium Webdriver_Specflow - Fatal编程技术网

C# 防止Specflow报告中显示Specflow步骤参数,即&x27;密码';

C# 防止Specflow报告中显示Specflow步骤参数,即&x27;密码';,c#,selenium,selenium-webdriver,specflow,C#,Selenium,Selenium Webdriver,Specflow,我有一堆Specflow步骤定义,它们使用“Username”和“Password”参数 当步骤显示在Specflow报告中时,它会呈现传入的值。这通常不是一个问题,因为它在测试环境中运行,并且报告仅通过电子邮件发送给选定的个人…但是,输出存储在本地,我希望将其移动到更易访问的位置(如果我不可用)…因此需要隐藏值 我希望能够在使用特定参数后对其进行散列。因此,默认的Specflow报告不显示实际值 通过使用JSON文件中存储的值覆盖step参数,我已经有了一个潜在的解决方法……通过反复试验,我知

我有一堆Specflow步骤定义,它们使用“Username”和“Password”参数

当步骤显示在Specflow报告中时,它会呈现传入的值。这通常不是一个问题,因为它在测试环境中运行,并且报告仅通过电子邮件发送给选定的个人…但是,输出存储在本地,我希望将其移动到更易访问的位置(如果我不可用)…因此需要隐藏值

我希望能够在使用特定参数后对其进行散列。因此,默认的Specflow报告不显示实际值

通过使用JSON文件中存储的值覆盖step参数,我已经有了一个潜在的解决方法……通过反复试验,我知道这种方法不会显示JSON值……相反,Specflow报告保留了功能文件中最初使用的值

功能场景示例:

Scenario: As a registered user I can log in with a valid email and password
Given I am on the Home page
When I click the Sign In option
Then The login page is displayed
When I enter valid login details and submit 'tester@test.co.uk', 'Password1!'
Then I am logged in
And The Sign In display name is displayed in the header 'Tester McTestFace'
步骤定义示例:

[When(@"I enter valid login details and submit '(.*)', '(.*)'")]
    public void WhenIEnterValidLoginDetailsAndSubmit(string email, string password)
    {
        PageAction.CompleteLoginForm(email, password);
    }
然后将其传递给WebDriver以执行适用的操作


我的Json覆盖方法是目前我唯一的选择,但希望有一些真正简单的内置Specflow功能可以散列值(还没有找到任何文档)。

将每个电子邮件的密码放在场景上下文中,然后只引用场景中的电子邮件地址

步骤定义变为:

[绑定]
公共类登录步骤
{
私有只读场景上下文场景;
公共登录步骤(场景上下文场景)
{
this.scenario=scenario;
场景集(“密码1”、“电子邮件1”);
场景集(“密码2”、“电子邮件2”);
...
scenario.Set(“PasswordN”、“emailN”);
}
[当(@“我以“(.*)”身份登录时]]
公共void WhenILogInAs(字符串电子邮件)
{
PageAction.completeloginfo(电子邮件,scenario.Get(电子邮件));
}
}
您的场景变成:

Scenario: As a registered user I can log in with a valid email and password
    Given I am on the Home page
    When I click the Sign In option
    Then The login page is displayed
    When I log in as 'tester@test.co.uk'
    Then I am logged in
    And The Sign In display name is displayed in the header 'Tester McTestFace'

谢谢我将研究这种方法。将需要在我的步骤和功能文件中进行一些返工。我猜是这样的。设置方法你基本上可以存储无限组合,并且你可以“匹配”传递到相关联的配对密码的电子邮件?@Scott:没错。这就像一袋数据,你可以一步一步地传递。整理我的问题。谢谢你