Как запустить TestInitialize до получения тестовых данных с помощью DataTestMehod? - PullRequest
0 голосов
/ 07 февраля 2020

Немного пятничного кодирования поставило меня в тупик, когда дело доходит до 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"};
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...