我有几个带有代码测试代码的文件(使用“unittest”类)。
后来我发现测试数据库完整性也很好。我把它放到一个单独的目录树中。(诸如键的格式正确,父节点和子节点指向正确等。编辑:这是一个 nosql 项目,我不能依赖数据库级别的检查,例如引用完整性等。)
我使用相同的 unittest 类进行完整性测试。
现在我想知道把它分开是否真的有意义。为了测试数据的完整性,我经常复制用于测试处理数据的代码的部分代码。
但它不一样。代码测试使用测试数据库(每次测试后都会被删除),完整性测试连接到实时数据并对其进行分析。我想从 cron 调用完整性测试并在实时数据库中发生某些事情时发送警报。
你会怎么处理?这种设置有标准吗?你的经验是什么?
我倾向于将所有内容放在同一个文件中,这将导致代码测试也由生产环境中的 cron 执行。
编辑:我的另一个动力是尽量保持项目简单,不要让单个任务或工作流程涉及太多文件。如果没有所有的测试,我已经有了一个类文件、一个子类、一个相关类、一些库(帮助程序)文件和主代码。测试添加一个文件。它可以帮助我在编码时保持注意力集中,减轻压力,并且我相信我犯的错误更少,并且我可以更快地记住并找到受影响的文件较少的某个代码部分。每个工作流程只有一个测试文件会有所帮助。如果我将其分开,则有 2 个文件(数据完整性测试和代码测试),可能还有 3 个(两者的通用库)。抽象会增加复杂性。
Edit2:我现在正在重构一点,只将数据测试文件移动到代码测试所在的同一目录树,但保留不同的文件,其名称表示“完整性”或“测试”。我不会(还)合并文件,因为有 2 个人反对它,我现在相信他们的经验和建议。我将暂时忍受代码重复。
Edit3:我忘了提到每次运行的测试选择在这种情况下不是由树结构决定的。测试在一个主文件中枚举,所以我目前有2个主文件“完整性”和“代码测试”,测试可以生活在同一个目录结构中。
也许更多人会回答。到目前为止,感谢您提供的宝贵意见,这已经帮助我开发了最终结构!
编辑4:我现在做了更多的重构。看来我应该保留 2 个文件,但目的稍作修改。一种针对生产服务器上的计划监控。另一个用于开发。但在这两个文件中都可以是完整性测试或代码测试。在这两个文件中,操作都可以在测试数据库(测试后被删除)和永久数据库(每个都有一个永久数据库、生产服务器和开发服务器)上执行。还有一件重要的事情:我发现自己将大量通用代码从测试文件转移到类文件中。因此,这些课程也获得了仅供测试的能力。到目前为止我喜欢这个,感觉很干净。我还没有(还)创建一个在 2 个测试前端之间共享的测试库,此代码已转到目前正在测试的对象的类文件。
请注意,我下面的评论是用“user89021”签名的,但这是我,karlthorwald。我对此无能为力。