Ошибка сборки CI с этапом тестирования Visual Studio после обновления .Net 4.6 — процесс Executor завершен; В net.pipe не было прослушивания конечной точки

Я только что обновил все проекты в своем решении, чтобы они указывали на .Net 4.6 (есть веб-приложение, некоторые библиотеки классов, проект базы данных и т. д.). У меня есть сборка CI, настроенная в Visual Studio Team Services (с использованием новой системы сборки, а не XAML), которая успешно строилась до обновления. Это определение сборки запускает сборки Debug, Staging и Production, а определение сборки состоит из двух шагов:

  • Сборка Visual Studio
  • Тест Visual Studio

До этого обновления фреймворка все шло нормально. Я обновил и собрал все локально, и все тоже отлично работало. Я мог запустить тесты и получить зеленый по всем направлениям. Теперь, когда я проверил свой код, он запустил сборку CI, и я получил следующие ошибки на шаге «Visual Studio Test» (взято из журналов):

2015-09-18T19:08:02.1212067Z Microsoft (R) Test Execution Command Line Tool Version 14.0.23107.0
2015-09-18T19:08:02.1489666Z Copyright (c) Microsoft Corporation.  All rights reserved.
2015-09-18T19:08:02.8906952Z Starting test execution, please wait...
2015-09-18T19:08:03.3713251Z Warning: Using Isolation mode to run tests as required by effective Platform:X86 and .Net Framework:Framework35 settings for test run. Use the /inIsolation parameter to suppress this warning.
2015-09-18T19:08:07.4457804Z ##[error]Error: Executor process exited.
2015-09-18T19:08:07.4457804Z ##[error]
2015-09-18T19:08:07.4557251Z ##[error]Error: There was no endpoint listening at net.pipe:[...redacted...] that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
2015-09-18T19:08:07.4557251Z ##[error]
2015-09-18T19:08:07.7730938Z ##[error]VSTest Test Run failed with exit code: 1
2015-09-18T19:08:07.8043435Z ##[warning]No results found to publish.

Сборка Visual Studio проходит успешно для всех трех конфигураций, а шаг Test завершается ошибкой только для Debug, поскольку не удается найти никаких тестов для двух других конфигураций. Кроме того, мои сборки выполняются на виртуальной машине Azure, которую я использовал в качестве сервера сборки, и когда я запускаю сборку CI с помощью размещенного контроллера сборки, шаг теста проходит, поскольку он не может найти никаких тестов для выполнения, но предупреждение об использовании «Режима изоляции для запуска тестов...» все еще распечатывается в журнале.

Это известная проблема? Кто-нибудь еще сталкивался с этим после обновления 4.6 или в другом контексте в VSTS?

Изменить: .Net Framework 4.6 SDK и целевые пакеты УСТАНОВЛЕНЫ на машине сборки: Из


person How 'bout a Fresca    schedule 18.09.2015    source источник
comment
Если вы установите виртуальную машину Azure в качестве сервера сборки, все сборки и тесты будут выполняться на этой виртуальной машине. Таким образом, вы должны быть уверены, что тест можно успешно запустить непосредственно на виртуальной машине (а не через процесс сборки). Кроме того, сообщение об ошибке, показанное выше, всегда возникает, когда брандмауэр блокирует некоторые трафики, поэтому проверьте параметры брандмауэра на этой виртуальной машине Azure.   -  person Vicky - MSFT    schedule 21.09.2015
comment
Я успешно выполнил все тесты через Visual Studio 2015 на виртуальной машине Azure (сервере сборки) и все еще сталкиваюсь с указанной выше ошибкой при выполнении тестовой задачи через VSO. Что касается настроек брандмауэра, как на это может повлиять обновление проекта до .Net 4.6? Ничего с брандмауэром не менялось. Спасибо!   -  person How 'bout a Fresca    schedule 21.09.2015
comment
Вы используете файл .runsettings?   -  person Jacob Foshee    schedule 28.09.2015


Ответы (4)


Первое предупреждение говорит о том, что тесты выполняются на .NET 3.5:Warning: ... effective Platform:X86 and .Net Framework:Framework35 ...

Поэтому я явно установил версию фреймворка vstest.console на 4.5. (В настоящее время версия 4.6 недоступна). Это решило эти симптомы для меня.

Для этого измените шаг сборки Visual Studio Test. На вкладке Сборка настроек шага разверните раздел Дополнительно и установите для параметра Другие параметры консоли значение /Framework:Framework45.

Другие параметры консоли: /Framework:Framework45

person Jacob Foshee    schedule 28.09.2015
comment
Работает, но по-прежнему нет параметра Framework46 на момент этого комментария с использованием TFS 2015 Update 1. Сборки .NET 4.6 должны по-прежнему использовать Framework45 для этого ручного параметра. - person Brendan Hannemann; 22.12.2015

Я нашел обходной путь на данный момент, который работает на данный момент. Я изменил настройки для этапа тестовой сборки Visual Studio следующим образом:

На вкладке Build настроек шага разверните раздел «Дополнительно» и измените версию VSTest на «Visual Studio 2013».

Это все, что мне потребовалось. Я попробовал это, потому что моя сборка работала, когда я переключился на контроллер сборки Hosted, и это было одним из различий между ними в журналах. Это единственное, что я изменил, и это сработало. Я понятия не имею, ПОЧЕМУ версия Visual Studio 2015 VSTest не работает, но я изучу ее подробнее и добавлю к этому, если найду что-нибудь...

person How 'bout a Fresca    schedule 21.09.2015

Я столкнулся с этой ошибкой (в частности, с кодом выхода VSTest) после обновления тестового проекта до версии 4.6.1. Проблема заключалась в том, что packages.config неправильно обновлял пакет запуска тестовой среды, оставляя его на .Net 3.5. Обновление целевой платформы решило проблему.

person Lex    schedule 03.07.2016

После установки .Net Framework 3.5 все было в порядке! См. комментарий «cottsay» по адресу https://github.com/Microsoft/vsts-tasks/issues/572

person Luuk Krijnen    schedule 07.11.2016