忽略IgnoreAttribute

brg*_*ner 39 c# mstest resharper-5.1

我们有MSTest测试,可以按小时生产自动运行.其中一个测试标有[Ignore]属性,因为它还没有准备好在我们的生产环境中运行它.
现在我想在我的本地环境中启动该测试(仅),因为我的本地环境已准备好进行该测试.
我尝试通过单击测试代码左侧的ReSharper图标或单击Unit Test Sessions窗口中的Run Selected Tests图标来运行测试,但没有任何反应.

我现在通过评论该[Ignore]线来修复它.但是现在我需要注意//在签入代码之前删除注释字符().

还有另一种方法可以暂时进行[Ignore]'d测试吗?

小智 38

最近当我遇到这样的问题时,我向Visual Studio项目中添加了一个名为"Local Developer Debug" 的新构建配置,并使用现有Debug配置中的设置.然后我转到"项目 - > MyProjectName属性 - >构建",确保"Local Developer Debug"是所选配置并将"LOCALDEVBUILD"添加到"条件符号符号".这允许使用预处理程序指令在编译时"切换"代码:

#if (!LOCALDEVBUILD)
    [Ignore]
#endif
Run Code Online (Sandbox Code Playgroud)

不确定这是否是您正在寻找的...但它允许您根据构建的意图(通过构建配置)运行/利用特定代码...使用此方法您可以忽略测试更多"官方"版本,但如果您愿意,仍可在闲暇时执行.


Las*_*ann 32

您还可以使用测试类别来标记您不希望包含在自动化测试中的测试方法,例如

[TestCategory("IgnoreOnBuild")]
Run Code Online (Sandbox Code Playgroud)

因此不使用[Ignore]属性.并将其与构建定义中的过滤器相结合,在Basic - > Automated Test - > Test Source - > Test Case Filter下:

TestCategory!=IgnoreOnBuild
Run Code Online (Sandbox Code Playgroud)