我正在使用 C# 在 Visual Studio 中编写 Selenium webdriver 测试。这些基本上是回归测试。我在 NUnit 中选择的框架。
我想参数化 URL,因此可以针对 TeamCity 中的不同部署运行相同的测试。我怎么做?我应该创建一个控制台应用程序,然后将参数传递给 Main() 吗?在那种情况下,我如何从 NUnit GUI 运行测试?
还有其他框架比 NUnit 更好吗?
谢谢!
我正在使用 C# 在 Visual Studio 中编写 Selenium webdriver 测试。这些基本上是回归测试。我在 NUnit 中选择的框架。
我想参数化 URL,因此可以针对 TeamCity 中的不同部署运行相同的测试。我怎么做?我应该创建一个控制台应用程序,然后将参数传递给 Main() 吗?在那种情况下,我如何从 NUnit GUI 运行测试?
还有其他框架比 NUnit 更好吗?
谢谢!
嘿,这里有一些有用的链接可能有助于回答您的问题:
http://codewandering.blogspot.com.au/2008/11/regression-testing-for-any-web.html
此外,您可以针对构建使用在 teamcity 中配置的环境变量(因此在夜间,您可能有与开发构建等不同的 url)并在源代码中调用该变量:
public static string GetBaseUrl()
{
return string.IsNullOrEmpty(System.Environment.GetEnvironmentVariable("testurl")) ? ConfigurationManager.AppSettings["baseurl"] : System.Environment.GetEnvironmentVariable("testurl");
}
在上面的代码片段中,我检查我是否有环境,如果没有,则使用 appconfig 作为备份。
在 TeamCity 中,您可以在每个配置下设置变量:
编辑配置 > 构建参数 > 添加环境变量 > 选择环境变量作为种类(在我的示例中为 env.testurl)。请注意,在 C# 中调用此值时,我不包括env。TeamCity 变量名称中的部分。
我们从默认的 App.config 开始,其中设置了用于在本地运行测试的值,用于开发。然后我们让 TeamCity 在构建步骤中将 App.config 替换为其他配置文件以用于不同的构建。这就是您可以为不同构建设置不同设置的方式,例如目标 URL。