Я пишу тест пользовательского интерфейса.Это для проверки страницы ошибки 404, которую я включил в Web.Config через;
<customErrors mode="On" redirect="~/Errors/"/>
Это все работает нормально, однако у меня только настраиваемые ошибки установлены на «Вкл.» В то время как в «UAT»среда разработки.Если я нахожусь в "Dev" или "IST", то я все еще хочу видеть ошибки ASP.Net по умолчанию.
Так что теперь вернемся к тесту пользовательского интерфейса с использованием Selenium
public string GetAlertBoxDetails()
{
IWebElement alertBox = _driver.FindElement(By.CssSelector(".alert.alert-danger"));
return alertBox.Text;
}
Как выможно увидеть, что я обнаружил окно Bootstrap ".alert.alert-danger" и вернул текст внутрь.Затем я проверяю, содержит ли этот текст «Извините, эта страница не существует».Я использую Specflow для текстовой истории.
[Then(@"The user should be told that no such page exists")]
public void ThenTheUserShouldBeToldThatNoSuchPageExists()
{
string alertboxDetail = GetAlertBoxDetails();
Assert.IsTrue(alertboxDetail.Contains("Sorry, that page doesn't exist."), "Couldn't find the message \"Sorry, that page doesn't exist.\"");
}
Все это прекрасно работает, однако Я бы хотел, чтобы этот тест выполнялся только в среде UAT.Это связано с тем, что элемент ".alert.alert-danger" будет обнаружен только в том случае, если для customErrors установлено значение "Off".Для этого я включил этот шаг в тест.
[Given(@"I am in the UAT environment")]
public void GivenIAmInTheUATEnvironment()
{
var env = EnvironmentType;
if (env != EnvironmentType.Uat)
{
Assert.Inconclusive($"Cannot run this test on environment: {env}. " +
$"This test is only for the UAT environment.");
}
else
{
Assert.IsTrue(true);
}
}
Опять же, это прекрасно работает.Моя единственная проблема в том, что я не хочу использовать «Assert.Inconclusive», я бы предпочел «Assert.Pass» и сказать, что тест пройден, если он проводится в среде, отличной от UAT.
Я вижу XUnitимеет функцию Assert.Pass, но можно ли это сделать в MsTest?Принудительно пройти тест, не переходя к следующему утверждению.В спецпроцессе я выполняю «заданный» шаг, я бы хотел не дать ему перейти к шагу «Тогда».