MsTest, DataSourceAttribute - как заставить его работать с файлом, сгенерированным во время выполнения?

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

6
задан Marcel Gosselin 18 December 2014 в 00:09
поделиться