【问题标题】:Can you group unit tests within a single testproject in VS2008?您可以在 VS2008 中将单元测试分组到单个测试项目中吗?
【发布时间】:2009-03-12 20:13:51
【问题描述】:

你可以在 VS2008 中将单元测试分组到一个单独的测试项目中吗?

例如 - test1 和 test2 属于 A 组。 Test4 和 test5 属于 B 组。

我不希望 B 组中的测试运行,除非我明确选择它们。 这是因为并非所有测试都应该包含在自动测试中。

编辑:
改写第二部分。
我可以使用测试列表编辑器创建组。是否可以只选择其中一个或两个组进行自动测试?

例如我希望 A 组每晚作为自动化测试运行,B 组用于手动测试运行。

【问题讨论】:

    标签: .net visual-studio-2008 unit-testing


    【解决方案1】:

    在测试视图窗口中有一个“分组依据”组合框。您可以根据类名、命名空间、描述等对测试进行分组。

    因此,通过将其与测试方法中可用的一些属性结合使用,例如Category,您可以在运行测试时更有选择性。

    编辑:这只是手动运行测试时的解决方案。也许类似的解决方案可用于自动测试,您可以选择仅运行某个类别或某个命名空间中的测试。

    【讨论】:

    • 这解决了分组问题,我想我可以创建自定义属性以满足我自己的需要。是否可以选择一个(或多个)已创建的组进行自动化测试?
    • 这也适用于自动化测试,事实上,这是长时间运行测试的首选方法(除了每天一次/两次的计划构建之外,大多数构建都将它们排除在外)。
    【解决方案2】:

    查看测试列表编辑器(在Test | Windows 下)。这将向您显示解决方案中的所有测试。在左侧,您可以创建组的 TreeView,并且可以将每个测试拖到一个组中。通过每个 TreeView 节点上的复选框,您可以轻松切换要运行或调试的(组)测试。

    这就是你要找的吗?

    此信息似乎存储在vsmdi 元数据文件中,因此应将其持久化。但是,我不确定这是否(以及如何)与自动测试有关。对我来说,它看起来像是一个 VS GUI 功能,用于手动分组和运行测试。

    编辑:对于自动化测试,我会尝试为不同的“场合”分离测试代码(例如,在处理代码时您总是想运行的快速单元测试、可能需要一些时间的性能测试、集成测试结束即使您使用相同的单元测试框架来物理实现所有这些测试,也可以将多层等)语义化到不同的测试项目中。然后您应该能够选择正确的测试组在正确的时间运行(签入、每日构建、需要时手动测试)。

    【讨论】:

      【解决方案3】:

      Visual Studio 单元测试背后的概念强烈建议对每个目标程序集使用一个测试项目。当然,可以为所有单元测试使用单个测试项目,但您必须手动编写它们。单元测试向导没有那么灵活。

      NUnit 更灵活。存储单元测试的程序集没有限制。您可以对所有单元测试使用单个程序集,甚至可以将其存储在与要测试的目标类相同的类中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多