Есть ли в xUnit аналогичная функция для этого?
В настоящее время я вижу только один тест в обозревателе тестов, хотя в тестовом наборе 6 тестов.
xUnit-тест
Код: Выделить всё
public class LogHandler : TestBase
{
private ILogger _logger;
public LogHandler()
{
//Arrange
LogAppSettings logAppSettings = GetAppSettings("Log");
IOptions options = Options.Create(logAppSettings);
LogService logService = new LogService(new Mock().Object, options);
LogProvider logProvider = new LogProvider(logService);
_logger = logProvider.CreateLogger(null);
}
public static IEnumerable TestCases => new[]
{
new object[] { LogLevel.Critical,
new EventId(),
new Exception(),
1 },
new object[] { LogLevel.Error,
new EventId(),
new Exception(),
1 },
new object[] { LogLevel.Warning,
new EventId(),
new Exception(),
0 },
new object[] { LogLevel.Information,
new EventId(),
new Exception(),
0 },
new object[] { LogLevel.Debug,
new EventId(),
new Exception(),
0 },
new object[] { LogLevel.Trace,
new EventId(),
new Exception(),
0 },
new object[] { LogLevel.None,
new EventId(),
new Exception(),
0 }
};
[Theory, MemberData(nameof(TestCases))]
public void Test(LogLevel logLevel, EventId eventId, Exception exception, int count)
{
//Act
_logger.Log(logLevel, eventId, null, exception, null);
//Assert
int exceptionCount = Database.Exception.Count();
Assert.Equal(exceptionCount, count);
}
}

Здесь должно быть 6 тестов вместо одного! (игнорируйте GetOrganisationStatuses).
Тестовый пример NUnit
Код: Выделить всё
public static IEnumerable TestDatabaseCases
{
get
{
yield return new TestCaseData(LogLevel.Critical,
new EventId(1),
new Exception("Exception"),
0,
1).SetName("InsertException_Should_Insert_When_LogLevel_Critical");
yield return new TestCaseData(LogLevel.Error,
new EventId(1),
new Exception("Exception"),
0,
1).SetName("InsertException_Should_Insert_When_LogLevel_Error");
yield return new TestCaseData(LogLevel.Warning,
new EventId(1),
new Exception("Exception"),
0,
0).SetName("InsertException_Should_Not_Insert_When_LogLevel_Warning");
yield return new TestCaseData(LogLevel.Information,
new EventId(1),
new Exception("Exception"),
0,
0).SetName("InsertException_Should_Not_Insert_When_LogLevel_Information");
yield return new TestCaseData(LogLevel.Debug,
new EventId(1),
new Exception("Exception"),
0,
0).SetName("InsertException_Should_Not_Insert_When_LogLevel_Debug");
}
}

Это то, что я хочу от xUnit!
Как в xUnit задать имя для каждого теста в тестовом наборе?
Подробнее здесь: https://stackoverflow.com/questions/467 ... a-testcase