gpt4 book ai didi

.net - 是否有管理单元和集成测试的 .net 框架?

转载 作者:行者123 更新时间:2023-12-02 13:01:35 25 4
gpt4 key购买 nike

我听说过单元测试的一个吹嘘是,您可以在一分钟左右运行 2000 多个测试..因为唯一的限制是 CPU 速度和 RAM。然而,我喜欢在我的测试项目中包含外部依赖断言/测试(例如:应用程序登录的用户帐户是否对适当的表具有插入/更新/删除权限,以考虑数据库是否曾经迁移?)

是否有框架或受支持的方式来利用 MS 测试,以便您可以选择仅运行单元测试或仅运行集成测试,或单击按钮即可运行两者?

最佳答案

是的。 :)

在VS2008中,当您创建测试项目时,Visual Studio还将生成一个测试元数据文件,或vsmdi文件。一种解决方案可能只有一个元数据文件。此文件是解决方案中跨所有测试项目生成的所有测试的 list 。打开元数据文件,将打开测试列表编辑器 - 用于编辑和执行文件的 GUI。

从测试列表编辑器中,您可以创建测试列表[例如UnitTestList、IntegrationTestList],并将各个测试分配给特定的测试列表。默认情况下,测试列表编辑器会列出“所有加载的测试”列表中的所有测试和“不在列表中的测试”列表,以帮助分配测试。使用它们来查找测试组或将测试组分配到列表中。请记住,一项测试可能只属于一个列表。

有两种方法可以调用测试列表

  • 在 Visual Studio 中,可以从测试列表编辑器单独调用每个列表。
  • 从命令行,可以使用特定列表调用 MSTest。

一个选项适合开发人员的日常工作流程,另一个选项适合自动化构建流程。

我在我从事的上一个项目中设置了类似的东西。

<小时/>

这个功能非常有值(value)*。

理想情况下,每当我们修改代码库时,我们都希望运行每一个可以想象的测试。这为我们提供了对所做更改的最佳响应。

然而,在实践中,运行测试套件中的每个测试通常意味着将几分钟或几小时的执行时间添加到构建时间[取决于代码库的大小和构建环境] - 这对于开发人员和持续集成[CI ] 环境,这两者都需要快速周转以提供相关响应。

指定显式测试列表的能力允许开发人员、CI 环境和最终构建环境有选择地定位功能位,而不会牺牲质量控制或影响整体生产力。

<小时/>

举个例子,我正在开发一个分布式应用程序。我们编写了自己的 Windows 服务来处理传入请求,并利用 Amazon 的 Web 服务进行存储。我们不想在每次构建时都运行我们的亚马逊测试套件,因为

  1. 亚马逊并不总是处于领先地位
  2. 我们并不总是保持联系
  3. 响应时间可以以数百毫秒为单位进行测量,这在一批测试请求中可以轻松地延长我们的测试套件的执行时间

但是,我们希望保留这些测试,因为我们需要一套来验证行为。如果作为一名开发人员,我对与 Amazon 的集成有疑问,我可以根据需要从我的开发环境中执行这些测试。当需要推广 QA 最终版本时,Cruise Control 还可以执行这些测试,以确保另一个职能领域的人员不会无意中破坏 Amazon 集成。

我们将这些 Amazon 测试放入集成测试列表中,每个开发人员都可以使用该列表,并在调用 Cruise Control 来促进构建时在构建机器上执行。我们维护了另一个单元测试列表,该列表也可供每个开发人员使用,并在每个构建上执行。由于所有这些都是内存中的[并且写得很好:]并且将在大约与构建项目所需的时间一样长的时间内执行,因此它们不会影响单独的构建操作,并及时从 Cruise Control 提供出色的反馈。

*=有值(value)==重要。 “值(value)”是今天的关键词:)

关于.net - 是否有管理单元和集成测试的 .net 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2057854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com