2016-07-22 100 views
0

ApprovalTests DiffReporter爲如果測試失敗,則不會彈出差異窗口運行測試。 以下是我的代碼。ApprovalTests 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)); 
    } 
} 

它在我的同事的一臺機器上彈出相同代碼的差異窗口。我們使用相同版本的Visual Studio具有相同的設置,並且我們都沒有安裝任何diff工具。

但是,我能夠在VS 2012中運行測試(彈出差異窗口),但不能在VS2013中運行測試。

版本: ApprovalTests.dll:3.0.0.0 的Visual Studio:2012專業版,專業版2013

這裏任何幫助將得到高度讚賞。謝謝!

回答

0

你可以運行這個,看看會發生什麼?

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

我運行上面的代碼行,測試失敗,因爲「IsWorkingInThisEnvironment(」a.txt「)」返回false。 我進行了一些測試,這裏有一些有趣的地方: 1)先打開VS2013,然後打開VS2012,diff窗口沒有彈出,並且兩者都失敗。 2)關閉VS2013並在VS2012中運行測試,彈出diff窗口並通過Assert。 3)打開VS2013(VS2012仍然打開),當我在VS2013中運行測試時,差異窗口出現在VS2012中,VS 2013中的斷言通過。 –

0

根據文檔,應用「DiffReporter」屬性將「啓動您的系統上最匹配的DiffReporter的實例」。

不知道爲什麼它沒有檢測到我的機器上安裝的visual studio和Sourcegear的diff merge附帶的diff合併記者。

安裝tortoise svn爲我工作,它現在彈出差異窗口龜tool工具。