Отладчик визуализатора не будет работать в тестах, когда визуализируемый объект находится в другой сборке - PullRequest
1 голос
/ 23 марта 2020

Я пытался написать пользовательский визуализатор отладчика , где визуализатор (наследующий от DialogDebuggerVisualizer) находится в одной сборке, а объект, который я хочу визуализировать в другой. Я хочу использовать визуализатор из модульных тестов.

Пока оба типа находятся в одной сборке, он работает как положено, и я получаю увеличительное стекло рядом с моей переменной в окне просмотра. Если я оставлю все остальное таким же, но переместу тип, который я хочу визуализировать, в его собственную сборку, он перестанет работать (т. Е. Увеличительное стекло не отображается в окне просмотра часов) из модульных тестов (пробовал в бегунах Visual Studio, ReSharper и NCrunch).

Визуализатор реализован так:

namespace Visualizer
{
    public class DebuggerSide : DialogDebuggerVisualizer
    {
        protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
        {
            string message = objectProvider?.GetObject()?.ToString() ?? "Failed to get object data";
            MessageBox.Show(message);
        }
    }
}

и объект, который я хочу визуализировать следующим образом:

namespace ProjectWithObjectToVisualize
{
    [DebuggerVisualizer("Visualizer.DebuggerSide, Visualizer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null")]
    [Serializable]
    public class ObjectToVisualize
    {
        public override string ToString()
        {
            return "Testing";
        }
    }
}

и тест xUnit следующим образом:

[Fact]
public void Test()
{
    var c = new ObjectToVisualize();
}

Консольная программа работает независимо от того, какую сборку я вставил ObjectToVisualize in.

project structure

Что мне делать изменить, чтобы он работал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...