为了和TFS更好集成,自动化编译、测试、发布。通常我会在Debug模式下使用NUnit、Release模式下基于Visual Studio Unit Testing。在Debug模式下定义一个条件编译符号:NUNIT,部分Attribute声明为兼容Visual Studio Unit Testing。比如:
1 #if !NUNIT 2 using Microsoft.VisualStudio.TestTools.UnitTesting; 3 #else 4 using NUnit.Framework; 5 using TestClass = NUnit.Framework.TestFixtureAttribute; 6 using TestCleanup = NUnit.Framework.TearDownAttribute; 7 using TestInitialize = NUnit.Framework.SetUpAttribute; 8 using TestMethod = NUnit.Framework.TestAttribute; 9 #endif
NUnit的Assert、ExpectedException和Visual Studio Unit Testing兼容。尽量使用两种测试框架相同的函数,这类问题很容易在两种编译模式下分析出来。NUnit的早期版本有一个RollbackAttribute,通常用于在集成测试下的数据源回滚,改为两者更通用的TransactionScope。