Немного пятничного кодирования поставило меня в тупик, когда дело доходит до MSTest v2 и DataTestMethods. Пытался найти ответы, используя мой Google-фу, но не повезло. Итак, ситуация такова:
Я хочу, чтобы метод, украшенный TestInitialize, был запущен перед вызовом метода GetTestData (). Но при использовании атрибута DataTestMethod в моем методе test сначала он пытается получить данные из метода, указанного в атрибуте DynamicData, а затем попадает в метод TestInit.
Любой, кто сталкивался с этой проблемой и может получить ответ на вопрос о том, как Сначала я запускаю TestInit?
Кроме того, существует множество тестов, которые зависят от TestInit, и, поскольку метод для создания данных является stati c Я не могу вызвать методы класса напрямую.
Одним из решений может быть удаление [TestMethod], добавление TestInit () в GetTestData () и затем TestCleanup после завершения метода тестирования. Но на самом деле это не нравится, так как есть атрибуты инициализации и очистки по определенной причине.
Использование. NET Framework 4.8 атм.
Пример кода:
[TestClass]
public class RandomTests
{
[TestInitialize]
public void TestInit()
{
}
[TestCleanup]
public void TestCleanup()
{
}
[TestMethod]
[DataTestMethod]
[DynamicData(nameof(GetTestData), DynamicDataSourceType.Method)]
public void TestingDataWithParams(string str)
{
Console.WriteLine(str);
}
private static IEnumerable<object[]> GetTestData()
{
yield return new object[] {"HelloWorld"};
}
}