几个问题:
1。)你是否单元测试发布代码?
2。)如果是这样,那么你是否保持这些单元测试不变,以便测试本身存在于生产环境中?
我在#1中看到了这个值,但是在生产中为例如NUnit程序集创建依赖项是一种“好习惯”吗?
告诉我你的想法。
答案 0 :(得分:16)
以上是我的一般规则(我通常部署到非技术用户)。但是我确实有一个例外,它是一个编程实用程序,使用~130个测试脚本进行单元测试。因为测试脚本是示例的两倍,所以我将它们与生产版本一起部署,因此它们增强了现有文档。
使用开源代码部署测试绝对值得。它允许人们玩,修改和提交补丁,同时能够运行成功通过的测试,以允许释放原始工件。
答案 1 :(得分:8)
是和是,发布和调试版本之间的应用程序行为可能不同,因此作为发布过程的一部分,发布版本必须通过其所有单元测试。
答案 2 :(得分:2)
当然可以!单元测试在所有构建配置上运行。
单元测试始终完好无损,但这并不意味着装运的组件依赖于与测试相关的任何内容。 测试始终以并行程序集(在相同的构建环境中)编写,然后测试生产程序集。并行组件不包含,因为它只包含测试。
答案 3 :(得分:2)
答案 4 :(得分:2)
取决于该项目。对于数字1是。遵循委托人应该检查所有内容到源代码控制中,并且应该很容易让新开发人员继续。让它们成为代码库的一部分。新人可以办理退房手续并进行测试。
它们是否部署到生产是一个不同的问题。我还没有在那里需要的项目。 Rails的部署模型(通常)只是在生产机器上检查整个项目,所以是的,它们就在那里。 Java / Maven项目有一个完整的构建/打包步骤,通常在构建最终的.war文件时可以 - 并且 - 删除单元测试。
无论哪种方式,你都不希望它们运行。在今天的环境中,如果它们位于那里并不重要 - 内存和磁盘是如此便宜,它确实不是问题。我听说你不想在生产服务器上使用测试代码这样的论点,这样它就不会有运行的风险,但我还没有听说过这种情况会发生的情况。