Visual Studio 2010, компьютер x64, использующий встроенный веб-сервер для размещения службы WCF с набором модульных тестов с использованием встроенной инфраструктуры тестирования.
У меня есть файл XML, который мои тестынужно загрузить для запуска.Я включил этот файл в тестовый проект, и для него установлено значение «content» и «всегда копировать в выходной каталог».Этот файл копируется в каталог bin \ debug.
Однако, когда я выполняю тесты, файл xml отсутствует.Вместо того чтобы искать в папке bin \ debug проекта, он ищет ее в рабочем каталоге теста, C: \ Projects \ SAP Reapprovals \ TestResults \ name_machine 2010-12-06 13_45_43 \ Out ". Файл там не был скопирован.
Есть ли способ принудительно скопировать этот файл или мне нужно полностью определить ссылку из теста?
TIA!Джеймс
Обновление Я установил атрибут DeploymentItem
, но файл по-прежнему не копируется.Но это похоже на то, что я хочу ... есть идеи, почему это не работает?
Мой тестовый код:
[TestMethod]
[DeploymentItem("SAP - GS3 format.xml")]
public void TestProcessSapRoles() {
// I get a 'file not found' error here, and when
// I check the output directory, it isn't there
XElement rolesRoot = XElement.Load("SAP - GS3 format.xml");
}
ОТВЕТЫ: Спасибо CPedros, с его помощью я немного увеличил масштаб.Я запустил Process Monitor SysInternals, чтобы посмотреть, где он ищет мой XML-файл.Вот что я нашел:
Когда я запускал тесты, используя ctrl + r, ctrl + t (отладка тестов в текущем контексте), visual studio игнорируется атрибут DeploymentItem
полностью и даже даже не пытался скопировать файл куда-либо.В этом случае я получил исключение «Файл не найден» при попытке открыть его для чтения.Visual studio создала временный рабочий каталог для тестов, но в нем был только один файл AgentRestart.dat.
Когда я запускал тесты с помощью кнопки «Выполнить юнит-тесты» на панели инструментов (не уверен, чтоопция проверки, Visual Studio не копировала файл, а ссылалась на него прямо из каталога проекта.Тест пройден, и временный рабочий каталог не создан.
Когда я запустил тест из пункта меню «выполнить -> тесты в текущем контексте» (запустить, не отлаживать), был создан временный рабочий каталог, в который был скопирован файл xml и все исполняемые файлы.Тест пройден.
Когда я редактировал Local.testsettings (в папке «Элементы решения» в моей папке «Тесты»), я выбрал «Развертывание» в левом меню и добавил файл XML.Он был добавлен как [каталог решений] \ [каталог проектов] \ file.xml.Я удалил атрибут DeploymentItem
.Теперь я смог отладить тесты;XML-файл и все исполняемые файлы были скопированы во временный каталог, созданный для теста.
TLDR: Visual Studio игнорирует атрибут DeploymentItem
для определенных способов выполнения теста.Решение состоит в том, чтобы отредактировать Local.testsettings
, меню Deployment
и добавить файл вручную.
Спасибо за помощь!Я отдаю должное CPedros за его ответ, так как он помог мне решить эту проблему.