0

У меня есть приложение ASP.NET Core Web API/.NET Core, которое создает и выполняет тесты локально и на других машинах разработчика. Он также отлично работает в Docker (мы создаем/тестируем приложение до создания докера). Мы пытаемся автоматизировать наши сборки с помощью Visual Studio Team Services, и решение строит отлично, только когда оно выполняет тесты на VSTS, есть проблема. Приложение загружает сборки во время выполнения, которое оно считывает из файла конфигурации, поэтому, когда приложение пытается загрузить сборку, оно выдает исключение (ниже), говорящее, что оно не может быть найдено. Значения в файле конфигурации являются относительными путями. Что-то очевидное, что мне не хватаетОшибка задания файла команды testnet.net Ошибка MSTest

System.Exception with message "Unable to load assembly or type. A: R:\agent\_work\4\s\Support\<assemblyname>, T: <TypeName>. Error: The system cannot find the path specified. (Exception from HRESULT: 0x80070003) 

Когда приложение запускается из Visual Studio, оно работает нормально. Когда я запускаю команду ниже, я могу воссоздать ошибку, которую мы получаем в VSTS.

"C:\Program Files\dotnet\dotnet.exe" test <Project Directory>/project.json --configuration release 

Любая помощь, определяющая надлежащий способ ссылки на эти файлы, будет высоко оценена.

  • Разработчик среды: Visual Studio 2015 Update 3
  • Testing Framework: MSTest
  • "MSTest.TestFramework": "1.0.4-просмотр"
  • "DotNet-тест-MSTest": «1,1 .1-preview "

ОБНОВЛЕНИЕ 2/22/17 Я все еще не могу запустить сборку из VSTS. Когда я запускаю команду «dotnet.exe test» из командной строки, которая находится в папке тестового проекта, я могу запускать проекты.

Когда я изменяю путь для исключения «.», У меня все еще есть ошибка локально и на VSTS. Я обновил проект, чтобы отразить это. Ниже мое определение сборки:

  1. .NET Ядро - Восстановление
    • Проект: **/project.json
  2. .NET Ядро - Построить
    • Проект: ** /project.json
  3. .NET Core - Test
    • проекта: тест/HostConsoleAppTest/project.json (я использовал относительный путь)

VSTs Ошибки:

2017-02-22T17:32:01.3057263Z Unable to load assembly or type. A: D:\a\1\s\Support\ImplAssembly.dll, T: ImplAssembly.TestReference. Error: The system cannot find the path specified. (Exception from HRESULT: 0x80070003) Running the reference with no dot

2017-02-22T17:32:01.3057263Z Getting Configuration

2017-02-22T17:32:01.3057263Z Creating implementation via assembly

2017-02-22T17:32:01.3057263Z Unable to load assembly or type. A: D:\Support\ImplAssembly.dll, T: ImplAssembly.TestReference. Error: The system cannot find the path specified. (Exception from HRESULT: 0x80070003)

Git Repo был обновлен

+0

Я не могу воспроизвести эту проблему. (Шаг: 1. Создайте .Net Core Web API, 2. добавьте «MSTest.TestFramework»: «1.0.4-preview» и «dotnet-test-mstest»: «1.1.1-preview "3. Добавьте" testRunner ":" mstest "в project.json.) Вы можете попробовать выполнить тест с помощью этапа тестирования Visual Studio с помощью project.json и/UseVsixExtensions: true/logger: trx arguments. Https://blogs.msdn.microsoft.com/visualstudioalm/2016/09/01/announcing-mstest-v2-framework-support-for-net-core-1-0-rtm/ Можете ли вы поделиться простым проектом, который может привести к этой проблеме на OneDrive.Пожалуйста, предоставьте подробный журнал сборки. –

+0

Большое спасибо за вашу помощь. Я добавил пример проекта в git: https://github.com/JShewchuk/TestCommandReferenceTest Выход команды находится в readme.md. Также обратите внимание, что эта ошибка такая же, что и в VSTS. Спасибо –

ответ

0

I воспроизвел вашу проблему на моей стороне, и вы можете использовать задачу «Командная строка» в качестве обходного пути: enter image description here enter image description here

+0

@ starain-MSFT Можете ли вы опубликовать то, что вы сделали, потому что это не работало для меня и сломало тест при запуске из Visual Studio. Исходная ошибка System.Exception: невозможно загрузить сборку или тип. A: C: \ Program Files (x86) \ Mic rosoft Visual Studio 14.0 \ Support \ ImplAssembly.dll, T: ImplAssembly.TestReference. Ошибка: система не может найти указанный путь. Новая ошибка: System.Exception: невозможно загрузить сборку или тип. A: C: \ Support \ ImplAssembly.dll, T: ImplAssembly.TestReference. Ошибка: система не может найти указанный путь. –

+0

@JShewchuk Я только что загрузил образец, который вы предоставили, и загрузил его в мой проект VSTS, а затем создал определение сборки. Я выбрал шаблон «ASP.NET Core (PREVIEW)». –

+0

Должно быть, я пропустил что-то принципиальное, что я не замечаю, поскольку у меня не было этой проблемы. –