相关疑难解决方法(0)

使MSTest尊重[Conditional()]属性?

我正在使用VS2010,我有以下方法调用:

[Conditional("DEBUG")]
public void VerboseLogging() { }

public void DoSomething() {
    VerboseLogging();
    Foo();
    Bar();
}
Run Code Online (Sandbox Code Playgroud)

然后我对该DoSomething方法进行了单元测试,检查它是否发出了正确的日志记录.

[Conditional("DEBUG"), TestMethod()]
public void EnsureVerboseLog() {
    DoSomething();
    VerifyVerboseLoggingCalled(); // <-- fail in release builds since VerboseLogging() calls get eliminated.
}
Run Code Online (Sandbox Code Playgroud)

似乎MSTest只看到TestMethod并执行它(生成失败的测试),即使我已经标记它Conditional("DEBUG")并在发布模式下编译它.

那么,有没有办法根据编译常量排除某些测试#if

c# mstest

6
推荐指数
2
解决办法
1936
查看次数

是否有用于指定配置的NUnit测试用例属性

我正在编写一个NUnit测试,我想只在Release配置中运行.使用测试用例属性是否有一种优雅的方式?现在,我用编译器指令包围整个功能块:

我正在使用Nunit 2.5.6.10205.

#if !DEBUG
        [Test]
        public void MyReleaseOnlyTest()
        {
           // stuff
        }
#endif
Run Code Online (Sandbox Code Playgroud)

c# nunit unit-testing

3
推荐指数
1
解决办法
1111
查看次数

标签 统计

c# ×2

mstest ×1

nunit ×1

unit-testing ×1