单元测试应该在本地机器上运行吗?

时间:2012-05-15 16:51:40

标签: c# unit-testing testing

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

4 个答案:

答案 0 :(得分:10)

单元测试应在构建服务器上的本地计算机 AND 上运行。它们是开发人员反馈的宝贵资源。 DEV 应该单元测试。在办理登机手续之前,他应该运行单元测试,以确保他不会破坏任何东西。然后构建服务器将再次运行单元测试,以确保它实际上没有被破坏,并且与其他代码的集成(如果有的话)成功。

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

当足够的测试自动化时,就会发生软件测试天堂,这样开发人员和企业就可以根据这一自动测试流的成功感觉安全地发布产品。实际上,只有少数产品会成熟 - 需要进行一些手动测试。

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

答案 1 :(得分:3)

单元测试应该是如此孤立,以至于它们可以在每台机器上运行而无需进一步设置。按定义进行的单元测试仅在非常精细的级别上测试功能单元而不接触外部系统(即数据库,文件系统等)

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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