【发布时间】:2011-12-24 20:11:04
【问题描述】:
我想扩展我在 SpecFlow 中编写的测试工具,使其更具可扩展性,所以我想做的是在设置中创建一个基本 URL 变量,我可以根据我使用的标志进行设置在 Nunit 跑步者上。因此,如果我将测试作为标记发送,我希望将某个 URL 值设置为“http://test/”,或者让开发人员将 URL 设置为“http://dev/”。我知道全局变量在 NUnit 中没有用,我之前的大部分脚本都是在 Perl 中编写的,即便如此我也很少使用它。我不确定我是否做对了,尽管我得到的代码编译没有错误,但 URL 永远不会被设置。我正在做的是检查 NUnit 跑步者何时启动:
private static testInfoConfiguration myUrl;
public static string baseUrl = string.Empty;
[BeforeFeature("Test")]
public static void BeforeFeature_Test()
{
myUrl = new testInfoConfiguration();
baseUrl = myUrl.setBaseUrl("Test");
}
这叫这个:
public class testInfoConfiguration
{
public string setBaseUrl(string envType)
{
string envUrl;
if (envType == "Test")
{
envUrl = "http://testweb/";
return envUrl;
}
if (envType == "Prod")
{
envUrl = "http://www/";
return envUrl;
}
envUrl = "http://devweb/";
return envUrl;
}
然后我想稍后调用 URL 变量:
[When(@"I access the Web Site")]
public void WhenIAccessTheWebSite()
{
string kcUrl = baseUrl + "/knowledge/Pages/default.aspx";
driver.Navigate().GoToUrl(kcUrl);
当我调用 URL 变量时,它仍然是空的。有没有办法做到这一点?我仍在学习 C#、NUnit 和 SpecFlow,所以我可能只是没有从正确的方面来看我出错的地方。或者只是真的不明白如何以这种方式设置变量。
编辑:调整现有代码
【问题讨论】:
标签: c# nunit automated-tests specflow