繁体   English   中英

从 Specflow 中的命令行运行特定配置文件 C#

[英]Running specific profile from command line in Specflow C#

我在 PHP Behat 上做了很多工作,我试图用 specflow 在 C# 中模拟同样的事情。 我遇到的问题之一是我想对多个(50 多个)网站使用相同的测试,基本上是在命令行中推送一个参数并告诉它 go 到哪个网站。
在 Behat 中,我将使用 Behat.yml,设置多个配置文件,格式类似于:

网站A:url:whatever.com 网站B:url:blabla.com

然后在命令行中指定我想要的配置文件“behat -p websiteA”,并基于此我有一个 function,它为我的特定网站使用 url。

我对 C# 和 specflow 的一切都很陌生,所以我想知道如何在 specflow 中使用这个解决方案。 到目前为止,我设法创建了一个在命令行中使用“do.net test”运行的基本场景。

我也在使用 selenium。

多谢!

这不是您所要求的解决方案(即不使用 specflow 配置文件),但作为切换网站的一般 c# 方法,您可以使用构建配置选项。

在 Build > Configuration Manager 中,您可以为每个环境/URL 创建新的配置文件。 展开活动解决方案配置,您可以创建新的:

构建配置管理器

你说你有 50 个网站,因为这只是一个驱动程序,所以可以通过编辑你的解决方案 (.sln) 文件来控制相同的信息:

GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Demo|Any CPU = Demo|Any CPU
        Dev|Any CPU = Dev|Any CPU
        Prod|Any CPU = Prod|Any CPU
            *...etc*
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {C634C2D6-7FB9-4B47-923F-9E8634843928}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {C634C2D6-7FB9-4B47-923F-9E8634843928}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {C634C2D6-7FB9-4B47-923F-9E8634843928}.Demo|Any CPU.ActiveCfg = Demo|Any CPU
          *...etc*

GUID 是对解决方案中项目的引用。 这都是可以复制+粘贴的。

添加这些后,您可以创建代码来读取和查看运行时设置,以根据需要创建/设置变量。

我们的方法(我相信还有其他方法)是创建一个 powershell 脚本,它将采用该配置名称并将我们的设置文件构建为项目的预构建事件 预构建设置

您可以看到 powershell 的输入是$(ConfigurationName) 此脚本的内容受限于您的想象力:-)

对我们来说,这特别有用,因为我们必须从每个环境的秘密管理器中获取密码和其他 API 密钥。 它将创建一个 local.json 文件,其中包含我们运行测试所需的一切。 然后,该框架只需要知道一个文件,并且它在 CI 管道中运行时也能正常工作。

最后 - 当谈到运行do.net test时,你使用-c并将它传递给你想要的构建(选项在这里):

-c|--configuration <CONFIGURATION>

定义构建配置。 默认值为 Debug,但您的项目配置可以覆盖此默认 SDK 设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM