для какого-то теста мне нужно запустить управляемый данными тест с конфигурацией, которая генерируется (с помощью отражения) в методе 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 - тот же результат. К сожалению, поддержка отладки здесь ограничена.