单元测试运行的特殊编译器标志

And*_*ter 4 c# unit-testing visual-studio-2010

关于在测试套件中构建的视觉工作室,我有一个问题.VS studio是否运行了这些测试并应用了一些特殊的编译器标志?

问题描述如下.我Equals在我的一个课程上重载了这个功能.在测试运行期间,它会很好,如果它可以给我一些额外的信息,班级中的成员根本不相同.

因此,我只想在应用程序在测试模式下运行时才实现一些消息.

谢谢你的回复!安德烈亚斯

m0s*_*0sa 7

VS使用当前选定的构建配置编译/构建项目.因此,解决方案可能是自己创建单独的构建配置,然后对该特定构建配置中的项目使用常量(例如TEST).然后可以使用#if TEST指令或[Conditional("TEST")]属性来限制输出方法的执行.您可以配置构建服务器te始终使用该特定构建配置运行测试,因此您将看到其他输出.但是,在从VS运行测试时,您需要手动在构建配置之间切换


Iva*_*tin 5

创建一个新的解决方案配置"测试"(如果还没有)并切换到它.打开项目设置,切换到"构建"选项卡并定义新符号TEST.按确定.

将您的Equals实施更改为

public override bool Equals (object obj)
{
    #if TEST
     // Your implementation
    #else
      return base.Equals (obj);
    #endif
}
Run Code Online (Sandbox Code Playgroud)

这将为您的测试配置编译不同的方法体.