1

最近,我的任务是用 C# 为桌面应用程序编写和运行单元测试。过去,我主要编写自动化功能/GUI 测试。这些在专用的 QA 机器上运行,因为这些测试可能导致崩溃、数据丢失、蓝屏死机等。是否应该为运行单元测试进行类似的设置?在我的本地机器上运行单元测试有任何风险吗?

4

4 回答 4

10

单元测试应该在您的本地机器构建服务器上运行。它们是作为开发人员反馈的宝贵资源。DEV应该编写单元测试。在签入之前,他应该运行单元测试以确保他没有破坏任何东西。然后构建服务器将再次运行单元测试,以确保它实际上没有损坏,并且与其他代码的集成(如果有的话)成功。

当单元测试运行时,构建服务器最好运行集成测试和自动化 UI 测试。当这些过程完成后,一个没有已知缺陷的构建就被生成了——至少没有一个被测试覆盖。换句话说,绿色构建意味着软件集成进展顺利,开发人员可以继续检查——或者在某个时候开始进行手动测试,然后再实际发布一个软件。

当足够多的测试被自动化时,软件测试必杀技就会出现,这样开发人员和企业就可以放心地发布仅基于此自动化测试流的成功的产品。实际上,只有少数产品会如此成熟——并且需要进行一些手动测试。

单元测试不涉及外部系统或接口。因此,在本地运行它们没有风险。

于 2012-05-15T16:55:19.170 回答
3

单元测试应该是独立的,以至于它们可以在每台机器上运行而无需任何进一步的设置。根据定义,单元测试只测试非常细粒度的功能单元,而不涉及外部系统(即数据库、文件系统等)

于 2012-05-15T16:55:01.990 回答
1

单元测试通常由开发人员在开发时完成。所以在你的开发环境中运行它。可能是您的本地机器。

于 2012-05-15T16:54:58.110 回答
1

好吧,如果您的本地机器是开发机器,我认为没有风险,因为该机器不是生产最终用户机器。您还可以考虑 TFS 实验室管理(如果您将 Microsoft TFS 作为 ALM/源控制系统)。在这种情况下,您可以创建虚拟或物理测试环境,并在这些定义的环境中部署和测试应用程序。

不确定非 TFS 场景的类似测试产品的名称是什么。

于 2012-05-15T16:55:18.610 回答