2013-10-29 125 views
1

我正在使用C#编写Visual Studio中的Selenium webdriver测试。这些基本上是回归测试。我在NUnit中选择的框架。如何在TeamCity上使用NUnit运行参数化Selenium测试?

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

其他的框架比NUnit更好吗?

谢谢!

+0

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

回答

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"); 
} 

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

内的TeamCity,您设置的变量每个配置下:

编辑配置>生成参数>(在我的例子env.testurl)添加环境变量>选择环境变量的类。 请注意,在C#中调用此值时,我不包含env。来自TeamCity变量名称的部分。

0

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

相关问题