如何建立一个URL变量的NUnit / SpecFlow框架使用(How to set up a U

2019-10-16 14:06发布

我想延长测试工具我已经写在SpecFlow要多一点可扩展的,所以我希望做的是在设置创建我可以设置根据我对NUnit的使用标志基本URL变量亚军。 所以,如果我在测试发送的标签我想要一些URL值设置为“HTTP://测试/”或者发展来设置URL为“HTTP://开发/”。 我知道全局变量是没有用在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所以我可能只是不看的这个正确的方面我要去的地方错了。 或者只是真的不理解如何以这种方式设置的变量。

编辑:调整现有的代码

Answer 1:

在下面的代码块:

private static testInfoConfiguration myUrl; 
public string baseUrl = "";     
[BeforeFeature("Test")] 
public static string BeforeFeature_Test() 
{ 

    myUrl = new testInfoConfiguration(); 
    string baseUrl = myUrl.setBaseUrl("Test"); 
    return baseUrl; 
} 

你定义baseUrl在类的范围方法的范围一次,一次:两次。

当你在这个代码块:

string kcUrl = baseUrl + "/knowledge/Pages/default.aspx";      
driver.Navigate().GoToUrl(kcUrl);   

你指的是(我认为)是实例字段baseUrl ,你从来没有设置。

尝试以下方法:

private static testInfoConfiguration myUrl; 
public static string baseUrl = string.Empty;     
[BeforeFeature("Test")] 
public static void BeforeFeature_Test() 
{ 
    myUrl = new testInfoConfiguration(); 
    baseUrl = myUrl.setBaseUrl("Test");       
} 


文章来源: How to set up a URL variable to be used in NUnit/SpecFlow framework