Вы можете параметризовать атрибут Test
как Test(ShouldFail=true)
.
В процессе тестирования сначала запускаются все тесты, которые не должны завершиться неудачей, а затем запускаются все тесты, которые должны. Если какие-либо тесты, которые должны провалиться, не сработают, остальные тесты, которые должны провалиться, все еще выполняются
Например, тестирование этого класса:
class Program
{
[Test(ShouldFail=true)]
public static void TestScopeShouldFailButSucceeds()
{
String str;
{
str = scope:: .();
}
str.ToUpper(); // will not fail
}
[Test(ShouldFail=true)]
public static void TestScopeShouldFail()
{
String str;
{
str = scope .();
}
str.ToUpper(); // will fail
}
[Test]
public static void TestScopeShouldNotFail()
{
String str;
{
str = scope:: .();
}
str.ToUpper(); // will not fail
}
public static void Main()
{
}
}
... сначала успешно завершит TestScopeShouldNotFail
, затем неожиданно завершит TestScopeShouldFailButSucceeds
, а затем, как ожидается, завершится с ошибкой TestScopeShouldFail
. Таким образом, он выдаст один неудачный тест для TestScopeShouldFailButSucceeds
.