【发布时间】:2019-04-26 15:12:20
【问题描述】:
我目前有一套使用 SpecFlow 和 C# 的 Selenium 自动化测试(IDE 是 Visual Studio 2017)。
我创建了一个批处理文件来运行适用的功能文件。
目前我使用以下属性在 Environments.cs 中设置我的测试环境(即 QA、UAT、Prod)
public static string CurrentEnvironment { get; set; } = uat;'
我想要实现的是如何通过批处理文件通过测试环境,因此在运行 BAT 文件之前无需打开解决方案和修改。
将来我可能希望通过此方法更新其他参数,例如 Specflow 参数,我可能希望覆盖参数值。
我尝试在谷歌上搜索解决方案,但我发现结构化我的问题并没有产生我想要的结果。
批处理文件:
ECHO ON
set Date=%date:~0,2%%date:~3,2%%date:~6,4%
set Time=%time:~0,2%%time:~3,2%
cd C:\Users\%username%\source\repos\AutomationTests\TestProject\packages\SpecRun.Runner.1.8.0\tools
SpecRun.exe run default.srprofile /basefolder:C:\Users\%username%\source\repos\AutomationTests\TestProject\TestProject\bin\Debug /filter:testpath:"Feature:TestFeature"
本质上,如果我的解决方案中的 CurrentEnvironment 属性设置为“UAT”,我希望能够通过 BAT 文件将其覆盖为“QA”。
我需要对 BAT 文件进行哪些修改以及对我的解决方案(如果有)进行哪些修改?
【问题讨论】:
-
您总是可以考虑通过 SpecFlow 传入参数,并在 Program.cs 中设置环境参数。
-
@larry 谢谢。是的,这是一个考虑因素,但我想避免任何接触 C# 或 Specflow 的人修改任何源代码。不希望有人进行更改,然后如果他们签入该修改。
-
那么也许让你的程序从文件中加载环境?
-
如果您实际编辑原始 CS 文件,则必须重新构建整个程序,所以这是不可能的。
标签: c# batch-file selenium-webdriver specflow