Я хотел бы расширить тестовый набор, который я написал в SpecFlow, чтобы он был немного более расширяемым, поэтому я хотел бы в настройке создать базовую переменную URL, которую я могу установить в зависимости от используемого флагана монахиня бегун.Поэтому, если я отправляю Test в качестве тега, я хочу, чтобы какое-либо значение URL-адреса было установлено на «http://test/"», или для Development было установлено значение 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, поэтому я, вероятно, просто не смотрю на правильный аспект этого, где я иду не так.Или просто не понимаете, как установить переменную таким образом.
Редактировать: Настройка существующего кода