为整个项目全局声明预处理符号(如DEBUG)

Ste*_*eve 6 .net c# nunit visual-studio c-preprocessor

我想在NUnit和VS Tests之间切换,如下所示:

#if !NUNIT
using Microsoft.VisualStudio.TestTools.UnitTesting;
#else
  using NUnit.Framework;
  using TestClass = NUnit.Framework.TestFixtureAttribute;
  using TestMethod = NUnit.Framework.TestAttribute;
  using TestInitialize = NUnit.Framework.SetUpAttribute;
  using TestCleanup = NUnit.Framework.TearDownAttribute;
  using TestContext = System.String;
  using DeploymentItem = NUnit.Framework.DescriptionAttribute;
#endif
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何在一个地方声明NUNIT预处理器符号(App.config左右,会很棒),轻松地在NUnit和VSTests之间切换?因为当我使用时#define NUNIT,它仅适用于写入文件的文件.

Meh*_*ari 10

使用项目属性对话框.您可以在那里定义全局符号:

右键单击项目 - >属性 - >构建选项卡 - >条件编译符号


Mar*_*ell 8

每个项目执行此操作的唯一方法是通过项目/构建本身(项目属性 - >构建 - >条件编译符号).您可以为项目定义多个"配置"(定义了不同的符号),并使用您想要的那个.

要添加新配置,请使用配置管理器(位于调试/发布下拉列表的底部)并根据现有(调试/发布/等)创建一个新配置.现在,在项目属性中,您可以选择此选项以设置该配置的不同符号.