最近我的任务是用C#编写和运行桌面应用程序的单元测试。过去,我主要编写了自动化的功能/ GUI测试。这些可以在专用QA机器上运行,因为这些测试可能导致崩溃,数据丢失,蓝屏死机等。是否应该为运行单元测试进行类似的设置?在本地机器上运行单元测试是否有风险?单元测试应该在本地机器上运行吗?
1
A
回答
10
单元测试应该在您的本地机器和在构建服务器上运行。作为开发者的反馈,它们是非常宝贵的资源。 DEV应该写单元测试。在检查之前,他应该运行单元测试以确保他不会破坏任何东西。构建服务器然后将再次运行单元测试,以确保它没有真正的破坏,并且与其他代码的集成(如果有的话)成功。
当单元测试运行时,最好构建服务器应该运行集成测试和自动UI测试。当这些过程完成后,已经生成了一个没有已知缺陷的构建 - 至少没有任何测试覆盖。换句话说,绿色构建意味着软件集成进展顺利,开发人员可以在实际发布软件之前继续检查 - 或者在某个时刻开始进行手动测试。
软件测试必杀技发生在足够多的测试已经自动化之后,这样开发人员和企业就可以安心地发布基于这个自动化测试流的成功产品。实际上,只有少数产品会成熟 - 并且需要进行一些手动测试。
单元测试不接触外部系统或接口。因此,在本地运行它们没有风险。
1
单元测试通常由开发人员在开发时完成。所以在开发环境中运行它。可能是你的本地机器。
3
单元测试应该是非常独立的,以便它们可以在每台机器上运行,而无需进一步设置。按定义进行单元测试只测试非常细粒度级的功能单元而不触及外部系统(即数据库,文件系统等)
1
好,如果您的本地计算机是开发机器我认为没有风险,因为机器不是生产最终用户机器。您也可以考虑TFS实验室管理(如果您有Microsoft TFS作为ALM /源代码管理系统)。在这种情况下,您可以创建虚拟或物理测试环境,并在这些定义的环境中部署和测试应用程序。
不确定类似测试产品的名称是否适用于非TFS场景。
相关问题
- 1. 在本地机器上运行并行测试
- 2. 我可以在构建机器上运行C#内置单元测试吗?
- 3. 单元测试应该知道NHibernate吗?
- 4. 在Jenkins(Gradle)上运行Android单元测试和仪器测试
- 5. Selenium测试在本地机器上运行,但不是通过jenkins运行
- 6. Flutter - 在Windows上运行单元测试
- 7. 在LSF上运行python单元测试
- 8. Jenkins在NodeJS上运行单元测试
- 9. 使用ReSharper测试运行器来运行MSTest单元测试
- 10. 可以在远程机器上运行本地脚本吗?
- 11. 单元测试应该覆盖压力测试吗?
- 12. 在本地计算机上运行asp.NET应用程序以进行测试
- 13. 在本地主机上运行时测试可确认(设计)
- 14. 从命令行运行本机VS2012/C++ 64位单元测试
- 15. 在本地机器上运行PHP?
- 16. 本地机器上的网页测试
- 17. QA团队应该进行单元测试吗?
- 18. 本地单元测试Android
- 19. 我是否应该针对SQLRepository运行单元测试?
- 20. ReSharper单元测试运行器 - TestCase
- 21. NodeJS和MAMP在本地机器上运行。可能吗?
- 22. 在运行测试/单元测试时运行rspec
- 23. 与Jenkins在无头机器上进行Android单元测试
- 24. 如何强制在Gradle Android版本上运行单元测试?
- 25. 单元测试未运行
- 26. Phabricator:运行单元测试
- 27. MSBuild运行单元测试
- 28. SuperNotCalledException运行单元测试
- 29. 应该是什么在单元测试
- 30. 在可可单元测试目标中运行测试之前运行脚本