resharper测试运行器 - 如何按类别执行?

时间:2015-02-28 19:21:22

标签: c# unit-testing visual-studio-2012 resharper

Resharper版本7.1

Visual Studio 2012 Ultimate

两部分问题:

Q1:当我选择"运行单元测试"在解决方案资源管理器resharper中自动打开测试夹具转轮并执行所有测试夹具。但是,我将测试分为两类:1)"长期运行" 2)"短跑"。有没有办法在执行这些步骤后,我可以让测试运行器执行"短时间运行",只有?

Q2:打开测试夹具转轮,我选择Group By" Categories"。我看到上面提到的两个类别。我右键点击"短跑"并选择"运行测试"。预计只有"短跑"测试将执行;但是,长期运行"和"短跑"执行。有没有办法按类别执行,只有该类别执行?

更新:这是我的屏幕上显示的内容

首先:R# - >选项 - >单元测试(常规标签)

enter image description here

第二:来自随机测试包的示例测试,显示用法。

enter image description here

第三:这是我执行"运行单元测试"来自解决方案资源管理器,以及当我右键单击"短暂运行" - >"运行测试" (在任何一种情况下,"长时间运行"也执行)

enter image description here

2 个答案:

答案 0 :(得分:3)

长时间运行的测试是否真的在运行?我知道这似乎是一个愚蠢的问题,但如果长短运行测试共享一个测试夹具,它可能看起来像他们正在运行,就像你发布的截图,但它只是共享夹具这是运行,而不是实际的测试。换句话说,测试装置在结果树中获得一个节点,如果它由测试共享,它可以在树中多次出现。在夹具运行时,测试运行器不知道将要运行什么测试,因此将树中的所有夹具节点标记为运行,尽管它只是共享夹具本身。正在运行。然后它将运行实际测试,并且只有运行的测试被标记为正在运行。

答案 1 :(得分:2)

第一步是将类别属性应用于测试方法(在xUnit.Net中,您可以使用名为 Category Traits。(如果您已将测试分开测试类/ fixtures,您可以将这些属性应用于类。)

然后,根据这些类别,您可以使R#仅执行具有指定类别之一的测试方法。您可以在 RESHARPER |选项对话框中执行此操作。在单元测试下,在常规标签上,有一个输入字段。