【问题标题】:Can I automatically assign tests based on project to test lists?我可以根据项目自动将测试分配到测试列表吗?
【发布时间】:2011-08-17 19:44:48
【问题描述】:

我最近将我们模糊定义的单元测试项目拆分为两个项目,一个用于单元测试,另一个用于(我们的大部分测试是)集成测试。这是希望不那么巧妙地促使我们的开发团队(包括我自己)编写更好的测试和更容易测试的代码。 (而且,通过扩展,更容易单元测试。)

在这样做时,我发现在 Visual Studio 中使用 MSTest 实际上有点令人沮丧,因为它很慢,但更重要的是,它希望在给定解决方案中运行所有测试,而不是在给定项目中运行所有测试。我已经跨过了第一个障碍,因为我最终遇到了测试列表编辑器,它允许您创建列表,然后将您的测试分配到列表中。我为单元测试创​​建了一个列表,检查了单元测试项目中的所有测试并将它们拖过来,并为集成测试做了同样的事情。您可以独立运行每个列表。

这让我们进入了问题的核心:是否可以简单地让这些列表自行增长? IE.,我可以将整个项目绑定到一个列表,或者至少让列表自己更新吗?我想让我们的开发人员(包括我自己)尽可能轻松地使这些列表保持最新,最重要的是,实际运行测试。

【问题讨论】:

    标签: c# visual-studio-2010 unit-testing tdd mstest


    【解决方案1】:

    在测试视图(测试->窗口->测试视图)和测试结果(测试->窗口->测试结果)中,您可以按许多不同的标准对测试进行分组,其中之一是项目。在测试视图中,您可以选择一个项目并单击“运行选择”按钮。


    编辑:

    请注意,如果您希望新测试在测试视图中自动更新,您需要取消选中“工具 -> 选项 -> 测试工具 - 中的“禁用测试方法的后台发现”选项> 测试项目”(进行此更改后重新启动 VS)。如果选中此选项,您需要在添加任何新测试之前单击刷新。


    编辑 2

    更多信息:您可以为“运行选择”分配一个键盘快捷键(例如 Ctrl R、S),这样即使测试视图窗口没有,您也可以为当前在测试视图中选择的项目运行所有测试'没有焦点(它需要在某个地方打开)。所以在测试视图中你可以选择你当前正在工作的项目,在那个项目中打开一个测试类,添加一个测试,然后立即按下你的键盘快捷键,项目中的所有测试,包括新的测试,都将运行.

    【讨论】:

    • 感谢您的回复,我明天上班后再试一试。
    【解决方案2】:

    我想你正在寻找test categories

    【讨论】:

    • 感谢您的建议,但这似乎不是我想要的。我知道测试类别功能,但它似乎不是在没有开发人员输入的情况下自动维护的东西。说实话,如果它是在开发人员之间单独使用属性装饰方法,或者我按项目手动拖放测试,我会选择后者。我的意图是项目是纯粹的,单元测试与集成测试的确定应该在项目级别。当然,除此之外,它们还可以细分。
    • 我目前没有使用 MSTest,但类别通常是划分测试的主要解决方案。大多数其他工具都可以处理类别。我认为将类别属性放在测试中没有任何问题。
    • 例如,如果我使用的是 NUnit,我只需单击项目(或我想要的任何子级别)并运行它,对吗?我不需要定义类别只是为了一起运行一组测试,会有一个基于层次结构的自然关系(当然可以将类别添加到其中)。默认情况下,MSTest 没有。选项是在当前上下文中运行测试(基本上,您的光标所在的方法或类),在解决方案中运行所有测试,或运行所有受影响的测试(即涉及代码更改)。
    • 基本上,使用一个类别来告诉我项目已经告诉我什么,并用它单独装饰每个方法,让我觉得多余。 管理测试列表也让我觉得多余。 如果可能的话,我希望喜欢 是一个自动解决方案。不过,我已经做好了失望的准备。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2021-11-04
    • 2022-08-22
    • 2023-03-15
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多