для какого-то теста мне нужно запустить тест на основе данных с конфигурацией, которая создается (посредством отражения) в методе ClassInitialize (с помощью отражения). Я все перепробовал, но никак не могу правильно настроить источник данных.
Тест берет список классов в CSV-файле (по одной строке на класс), а затем проверяет, что сопоставления с базой данных работают правильно (т. Е. Пытаются получить один элемент из базы данных для каждого объекта, что вызовет исключение, когда структура таблицы не совпадает).
Метод тестирования:
[DataSource(
"Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\EntityMappingsTests.Types.csv",
"EntityMappingsTests.Types#csv",
DataAccessMethod.Sequential)
]
[TestMethod()]
public void TestMappings () {
Очевидно, это файл EntityMappingsTests.Types.csv. Он должен быть в DataDirectory.
Теперь, в методе Initialize (помеченном как ClassInitialize) я собрал все это вместе, а затем попытался записать.
Куда мне писать? ГДЕ DataDirectory?
Я пробовал:
File.WriteAllText(context.TestDeploymentDir + "\\EntityMappingsTests.Types.csv", types.ToString());
File.WriteAllText("EntityMappingsTests.Types.csv", types.ToString());
Оба результата приводят к тому, что «адаптеру модульного тестирования не удалось подключиться к источнику данных или прочитать данные». Точнее:
Сведения об ошибке: ядру базы данных Microsoft Jet не удалось найти объект 'EntityMappingsTests.Types.csv'. Убедитесь, что объект существует и вы правильно написали его имя и путь.
Итак, где мне поместить этот файл?
Я также попытался просто записать его в текущий каталог и удалить часть DataDirectory - тот же результат.К сожалению, поддержка отладки здесь ограничена.