У меня есть модульный тест С# в тестовой среде Visual Studio 2013, который выполняет CLI и собственный код. Я хотел бы исследовать нативную часть кода при выполнении модульного теста С#. Однако запуск Test -> Debug -> All Tests запускает управляемый отладчик, поэтому точки останова в машинном коде не срабатывают, и я не могу выполнить трассировку кода C# -> C++/CLI, как при запуске программы в отладчике смешанного режима.
Например, этот код в моем модульном тесте:
[TestMethod]
public void TestRoundTripEvaluate()
{
var obj = new MyCLIObject();
var roundtripped = RoundtripXml( obj );
// I would like to trace into here to see why Equals returns false.
// But the definition for MyCLIObject is in a CPP file and cannot be navigated
// to running the unit test because Visual Studio starts the debugger as "managed only"
// when using Test -> Debug -> All Tests
Assert.IsTrue( obj.Equals( roundtripped ) );
}
Глядя на настройки проекта для проекта модульного тестирования, все в разделе «Отладка» отключено, поэтому я не могу установить флажок «Включить отладку собственного кода», который допускает такое поведение для обычной программы.
Как включить отладку в смешанном режиме или отладку только в собственном режиме при выполнении модульного теста VS C#?