即使我们有一个Makefile或类似的东西,在运送产品时将测试代码分开。 在我看来,它们应该是分开的,但我并不完全相信为什么
答案 0 :(得分:10)
是的,它们应该是分开的(文件夹,最好是项目)。一些原因:
现代IDE允许您处理来自不同项目/文件夹的代码,就好像它们是相邻的一样。
您可以做的最差事情是将测试和生产代码包含在相同的文件中(使用条件编译,不同的入口点等)。这不仅会让尝试阅读代码的开发人员感到困惑,而且总是冒着意外发送测试代码的风险。
答案 1 :(得分:5)
由于我有机会使用这两种方法(分离和与项目代码),这里有一些微小的东西妨碍了< / em>注意(C#,Visual Studio,MsBuild)。
MyClass
的类,常见的方法是命名测试类MyClassTest
- 这在使用导航/命名完成工具时会产生微小的烦恼(因为你有更大的机会获得超过选择快速导航的一个结果)ListManager
...转换器,格式化程序,提供程序),命名冲突实际上会变得更加无聊。在易于理解的项目数量之间导航(通常为3-7)不是问题 - 输入测试,再次输入长列表。
当然,现代机器将缓解项目编号问题。除非这确实成为一个问题,否则我总是选择分离项目方法 - 它只是更干净整洁并且更容易管理。
答案 2 :(得分:1)
在全自动建筑和单元测试框架中,您基本上可以将它们分开。
在每晚构建完成后启动自动单元测试更有意义。 将它们分开使其更易于维护。