Я изначально дал вам инструкции, чтобы убедиться, что Развертывание было включено в ваших настройках теста. Вы сказали, что это было.
Убедитесь, что у вас включено развертывание для тестового запуска.
- Отредактируйте
.testsettings
в папке «Элементы решения»
- Выберите категорию развертывания
- Установите флажок «Включить развертывание»
- Нажмите «Применить» и «Закрыть»
Однако с тех пор, как я отвечал в прошлый раз, я узнал, что атрибут DeploymentItem
предназначен только для методов (и, похоже, он работает только на TestMethod
s). Это никогда не могло бы работать так, как вы украшаете class
. Я также заметил ваш комментарий к вашему вопросу (отредактировано для грамматики)
Да, элементы установлены на Copy Always
, иначе DeploymentItem
в тестовом прогоне проекта не сработает.
Существует много дискуссий , нужно ли это или нет, чтобы DeploymentItem
работало. Я подозреваю, что что-то, что мы еще не определили, заставляет тесты проходить при запуске их из проекта. Удалите DeploymentItem
s полностью и попробуйте выполнить два теста (из проекта и из решения) и посмотрите, какие результаты вы получите.
В случае, если элементы развертывания работают, несмотря на документацию
Убедитесь, что ReportEngine.config
и ReportFiles\
находятся там, где вы и MSTest ожидаете их. Относительные пути к файлам разрешаются, начиная с «RelativeRootPath». По умолчанию это $(SolutionDir)
. Если вы не переопределите это в testsettings
. Пожалуйста, проверьте это.
Но по умолчанию
[DeploymentItem("ReportEngine.config")]
расширен до чего-то вроде
[DeploymentItem("$(SolutionDir)\ReportEngine.config")]
затем, например, до
[DeploymentItem("D:\code\my-project\ReportEngine.config")]