【问题标题】:How to run a parameterized Selenium test with NUnit on TeamCity?如何在 TeamCity 上使用 NUnit 运行参数化 Selenium 测试?
【发布时间】:2013-11-08 20:33:00
【问题描述】:

我正在使用 C# 在 Visual Studio 中编写 Selenium webdriver 测试。这些基本上是回归测试。我在 NUnit 中选择的框架。

我想参数化 URL,以便可以针对 TeamCity 中的不同部署运行相同的测试。我怎么做?我应该创建一个控制台应用程序,然后将参数传递给 Main() 吗?在这种情况下,我如何从 NUnit GUI 运行测试?

还有其他框架比 NUnit 更好吗?

谢谢!

【问题讨论】:

  • 这是在测试级别还是测试夹具级别?例如,每个单独的测试是否有不同的 URL 或每个单独的测试夹具具有不同的 URL(即该特定夹具中的所有测试都使用该 URL)?

标签: c# selenium nunit selenium-webdriver teamcity


【解决方案1】:

这里有一些有用的链接可能有助于回答您的问题:

http://codewandering.blogspot.com.au/2008/11/regression-testing-for-any-web.html

http://kristjansson.us/?p=947

此外,您可以针对构建使用在 teamcity 中配置的环境变量(因此在夜间,您可能有与开发构建等不同的 url) 并在源代码中调用变量:

public static string GetBaseUrl()
{
    return string.IsNullOrEmpty(System.Environment.GetEnvironmentVariable("testurl")) ? ConfigurationManager.AppSettings["baseurl"] : System.Environment.GetEnvironmentVariable("testurl");
}

在上面的代码片段中,我检查我是否有环境,如果没有,使用 appconfig 作为备份。

在 TeamCity 中,您可以在每个配置下设置变量:

Edit Config > Build Params > add Environment Variables > 选择 Environment Variables 作为 Kind(在我的示例中为 env.testurl)。 请注意,在 C# 中调用此值时,我不包括 TeamCity 变量名称中的 env. 部分。

【讨论】:

    【解决方案2】:

    我们从默认的 App.config 开始,其中设置了用于在本地运行测试和开发的值。然后我们让 TeamCity 在构建步骤中将 App.config 替换为其他配置文件以用于不同的构建。这样您就可以为不同的构建设置不同的设置,例如目标 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-19
      • 2011-09-14
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 2022-12-05
      相关资源
      最近更新 更多