.net - 用NUnit和MSTest进行单元测试的.NET 切换

  显示原文与译文双语对照的内容
121 1

如果你想让其他开发人员使用NUnit或者 MSTest,那么如何配置一个. NET 解决方案( C#,.NET 2.0 ) 来允许其他开发人员使用相同的单元?

背景:

在这个项目中,一些开发者使用VS2005团队版,而其他开发人员使用VS2005专业版,所以不是所有的开发者都能运行 MSTest 。鉴于这是一个企业项目,团队无法使用 TestDriven.net 或者 ReSharper 。我知道使用 vs的任何产品都会解决这个问题,但是考虑购买许可以证的时间是不可以行的。

感谢你的帮助,MagicAndi 。

时间:原作者:0个回答

93 3

我发现的最佳解决方案是使用我在文章中找到的一段简单的代码。仅在每个. cs 测试 file:的命名空间部分中使用这里代码段

#if NUNIT
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using ClassCleanup = NUnit.Framework.TestFixtureTearDownAttribute;
using ClassInitialize = NUnit.Framework.TestFixtureSetUpAttribute;
#else
using Microsoft.VisualStudio.TestTools.UnitTesting;
#endif
using NUnitAssert = NUnit.Framework.Assert;
using MsAssert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;

代码段中的NUNIT 引用了解决方案的自定义生成配置。你可以使用 vs 配置管理 ( 通过 vs 工具栏或者解决方案属性) 创建这个。另外,你需要在方法中替换nunit测试属性的所有实例,以便使用MSTest选项属性( 反之亦然) 。

编辑:更新上面的代码 Fragment,为问题 Ide中指出的问题添加一个可能的修复。注意,我还没有测试这个修复程序。更新代码Fragment取自Simon在这个博客帖子中的评论。

原作者:
...