У меня есть функция модульного теста с [DataSource ("ConnectionStringName")] и функция пользовательского атрибута, а также декорированный метод ClassInitialize, который будет выполняться до запуска фактического метода теста.
В оформленном методе ClassInitialize я добавляю строку подключения источника данных разных типов в файл конфигурации на основе моего пользовательского атрибута.
Проблема заключается в том, что перед вызовом метода «ClassInitialize» моя функция модульного теста проверяет, доступно ли в строке конфигурации имя соединения «ConnectionStringName», и, таким образом, дает исключение, например «Источник данных« ConnectionStringName »не может быть найден в проверить настройки конфигурации ' перед вызовом декорированного метода ClassInitialize, который не может обновить строку соединения в файле конфигурации.
Любой трюк для вызова класса инициализирует декорированный метод, даже строка подключения не найдена в настройках конфигурации для любого метода тестирования.
Ниже мой код.
[ClassInitialize]
public static void TestSetup(TestContext context)
{
DataSourceConnectionHelper sourceConnectionHelper = new DataSourceConnectionHelper(typeof(AccountControllerTest), context.FullyQualifiedTestClassName, context.TestName);
var status = sourceConnectionHelper.UpdateConnection();
}
[CsvDataConnection(@"DataSource\UserData.csv")]
[DataSource("ConnectionStringName")]
[TestMethod]
public void UserValidationTest()
{
}