2016-02-02 3 views
1

Это работало до того, как был установлен SP1.Покрытие VSTESTcode, поврежденное после SP1 для Visual Studio 2015, установлено

namespace Test 
{ 
    public class Adder 
    { 
     public int Add(int n1, int n2) 
     { 
      return n1 + n2; 
     }  
    } 
} 

namespace AdderTest 
{ 
    [TestFixture] 
    public class Class1 
    { 
     [Test] 
     public void AddTest1() 
     { 
      var add = new Adder(); 
      var res = add.Add(2, 3); 
      Assert.AreEqual(5, res); 
     } 
    } 
} 

Эта команда все еще работает после SP1 установлен

vstest.console.exe/usevsixextensions: истина/рамки: framework45/Платформа: x86 AdderTest.dll

Это один не делает, и это терпит неудачу на каждом ПК в нашей команде, где установлен SP1.

vstest.console.exe/enablecodecoverage/usevsixextensions: истина/рамки: framework45/Платформа: x86 AdderTest.dll

Ошибка: Активный Test Run был прерван, потому что процесс выполнения вышли неожиданно. Дополнительные сведения см. В журналах процесса выполнения. Если журналы не включены, включите журналы и повторите попытку.

Журналы показывают следующее сообщение об ошибке:

V, 10664, 11, 2016/02/02, 15: 00: 09,114, 2115392201142, vstest.console.exe, TestRunRequest: SendTestRunMessage: Starting.

I, 10664, 11, 2016/02/02, 15: 00: 09.116, 2115392205435, vstest.console.exe, TestRunRequest: SendTestRunMessage: Выполнено.

E, 10664, 10, 2016/02/02, 15: 00: 23.722, 2115441528953, vstest.console.exe, TAEF Исполнение двигателя: [HRESULT: 0x800706BA] Не удалось создать процесс тестового хоста для отказа от процесса выполнение теста. (Процесс тестового хоста не выполнялся с кодом выхода 0xc0000005. Не удалось установить связь с процессом тестового хоста (время попытки подключения было отключено.))

Появляется SP1, в котором установлены все новые vstest exe и DLL, также показалось установить Таеф вещи, хотя я использую окна 7

Использование NUnit 2.6 & ВС Nunit расширение тест бегун (также попытался NUint 3,0 с его тест бегун - еще сломал)

Мы используем VSTEST, потому что наши код представляет собой комбинацию компонентов C++/C# и 64 бит. Нам нужно объединить и охватить тесты.

Обновление:

Б VS 2105 написать intellitest - которая не один и тот же способ бега покрытие.

ответ

0

Смотрите эту ссылку https://github.com/mmanela/chutzpah/issues/387

Запись по mmanela 1 сен 2015

Установка ключа реестра, упомянутые в этой ссылке решен вопрос. Microsoft сказала мне, что это было обходным решением, а не исправлением.

1

Это регрессия в VS 2015 Обновление 1. Wex.Communication.dll вызывал GetModuleFileNameExW, когда его глобальные переменные инициализировались. В Windows 7 при сборе покрытия кода этот API вызвал выгрузку Wex.Communication.dll. Когда GetModuleFileNameExW вернулся, процесс разбился, потому что DLL была выгружена. Я исправил это, чтобы подождать, пока DLL полностью загрузится, чтобы вызвать GetModuleFileNameExW, что предотвращает крах. (Я инженер-программист, который работает на TAEF в Microsoft.) Исправление будет отправлено в будущем обновлении VS 2015.

Чтобы обойти это, отключите TAEF, установив значение реестра с именем «Значение» в 0 в ключ HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ FeatureFlags \ TestingTools \ UnitTesting \ Taef. (VSTest имеет две реализации в VS 2015. Когда TAEF отключен, используется старая реализация от VS 2013. Реализация на основе TAEF является новой в VS 2015.)