2012年6月15日 星期五

Visual Studio 2012 Test Platform

在 VS 2010 中寫單元測試,是一件簡單的事,但是內建的 ms-test 的效能卻是不好。而其他的 test framework 如 xUnit, MbUnit, NUnit 等,又難與 Team Foundation Server 整合。於是,只能一直使用 ms-test。

在 VS 2012 中,Test Framework 不再是單元測試中第一個要選擇的對象了。因為它有了新的概念:Unit Test Platform。

Unit Test Platform

簡單來說,我們現在可以在 VS12 中作許多不同Test Framework 的單元測試平台了。

image

安裝 xUnit Test Runner

在 Extensions and Updates 中,找到 xUnit Test Runner 並安裝。

image

image

接下來,建立一個平常的 Class Library, 並用 NuGet 安裝 xNnit ,以及引用 ms test framework. 完成如下圖的  References

image

再來,就寫測試吧。

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Text;
   5: using System.Threading;
   6: using Microsoft.VisualStudio.TestTools.UnitTesting;
   7: using Xunit;
   8:  
   9: namespace ClassLibraryTest
  10: {
  11:     [TestClass]
  12:     public class Class1
  13:     {
  14:         [Fact]
  15:         public async void Test()
  16:         {
  17:             var sut = new AsyncClass();
  18:             await sut.DoAsyncWork();
  19:             Xunit.Assert.Equal("Hello", sut.Property);
  20:         }
  21:  
  22:         [TestMethod]
  23:         public void Test2()
  24:         {
  25:             Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsTrue(true);
  26:         }
  27:     }
  28: }

執行測試

在左方的 Test Explorer,就可以看兩種不同的 Test Framework 的測試都可以被找到,且測試完畢。

image

結論

VS 2012 中的測試,看來又大幅提升了微軟在測試界的地位了。

沒有留言:

Share with Facebook