2016-07-22 5 views
0

Утверждение испытаний DiffReporter - , не выставляя окно diff после запуска теста, если тест не прошел. Ниже мой код.Утверждение Тесты DiffReporter не выворачивают окно разворота при неудачном завершении теста

[UseReporter(typeof(DiffReporter))] 
[TestClass] 
public class ProjectEmployeeJsonTests 
{ 
    [TestMethod] 
    public void ToCommand() 
    { 
     var source = new EmployeeJson 
     { 
      firstName = "ABC", 
      lastName = "TestCarrier" 
     }; 

     var destination = new EmployeeCommand(); 
     var mapper = GetMapper(); 
     mapper.Execute(source, destination); 

     Approvals.Verify(
      JsonConvert.SerializeObject(
       destination, 
       Formatting.Indented)); 
    } 
} 

Он выталкивает окно diff для одного и того же кода на одной из машин моего коллеги. Мы используем ту же самую версию Visual Studio с одинаковыми настройками, и у нас обоих нет установленных инструментов diff.

Тем не менее, я могу запустить тест в VS 2012 (окно разворота появилось), но не в VS2013.

Версии: ApprovalTests.dll: 3.0.0.0 Visual Studio: 2012 Professional, 2013 Professional

Любая помощь здесь будет высоко оценен. Благодаря!

ответ

0

Можете ли вы запустить это и посмотреть, что произойдет?

Approvals.SetCaller(); 
Assert.IsTrue(VisualStudioReporter.INSTANCE.IsWorkingInThisEnvironment("a.txt")); 
+0

Я выполнил указанные выше строки кода, тест завершился неудачно, так как «IsWorkingInThisEnvironment (« a.txt »)« возвращал false. Я провел несколько тестов, и вот несколько интересных моментов: 1) Открыл VS2013 первым и открыл VS2012 позже, окно diff не появилось, а Assert не удалось в обоих. 2) Закрыл VS2013 и выполнил тест в VS2012, окно diff появилось и Assert прошло. 3) Открытый VS2013 (VS2012 все еще открыт), когда я запускал тест в VS2013, окно diff появилось в VS2012 и Assert в VS 2013 прошло. –

0

Согласно документации, применяя атрибут «DiffReporter» будет «Запуск экземпляра лучшего соответствия DiffReporter в вашей системе».

Не знаете, почему он не обнаружил репортер diff merge, который поставляется с визуальной студией и исходным кодом diff merge от Sourcegear, установленным на моей машине.

Установка tortoise svn Работала для меня, теперь появляется окно diff в инструменте diffroise diff.