我有几个代码测试代码的文件(它使用“单元测试”类)。如何组织实时数据完整性测试和代码单元测试?
后来我发现它也会很好地测试数据库的完整性。我把它放到一个单独的目录树中。 (类似键的东西有正确的格式,父节点和子节点都指向正确,等等。编辑:这是一个nosql项目,我不能依赖数据库级别检查liek参照完整性等)。
我使用完整性测试相同的单元测试类。
现在我想知道保持这种分开是否真的有意义。为了测试数据的完整性,我经常复制用于测试处理数据的代码的部分代码。
但它是不一样的。代码测试使用测试数据库(每次测试后删除)和完整性测试连接到实时数据并进行分析。我希望从cron调用完整性测试,并在活动数据库中发生事件时发送警报。
你会如何处理?这样的设置是否有标准?你有什么经验?
我的倾向是将所有内容放在同一个文件中,这会导致代码测试也被生产环境中的cron执行。
编辑:也驱使我尝试保持项目简单,并且不要让单个任务或工作流触及太多文件。没有所有的测试,我已经有了一个类文件,一个子类,一个相关的类,一些库(helper)文件和主代码。测试添加一个文件。它可以帮助我在编码时集中注意力,减轻压力,并且我相信我可以减少错误,并且可以更快地记住并找到影响较小文件的特定代码部分。每个工作流程只有一个测试文件可以帮助您。如果我保持独立,则有2个文件(数据完整性测试和代码测试),也可能有3个(两者都有一个通用库)。抽象会增加复杂性。
EDIT2:我现在重构一点点,只有数据测试文件移动到同一个目录树,其中还有代码测试的生命,但保持不同的文件名为表示“诚信”或“测试”。我还没有(合并)这些文件,因为有两个人反对,现在我相信他们的经验和建议。目前我将与代码复制一起生活。
编辑3:我忘了提及每次运行测试的选择不是由树结构决定的。测试枚举在主文件中,所以我目前有2个主文件“完整性”和“代码测试”,并且测试可以存在于同一个directury结构中。
也许更多人会回答。感谢您的宝贵意见,这已经帮助我开发最终结构!
编辑4:我现在做了更多的重构。看来我应该保留2个文件,但略有修改的目的。一个针对生产服务器上的预定监控。另一个发展。但是在两个文件中都可以进行完整性测试或代码测试。在这两个文件中,操作都可以在测试数据库(测试后擦除)和永久性数据库(每个数据库都有一个永久性数据库,生产服务器和开发服务器)上执行。还有一件重要的事情:我发现自己将大量通用代码从测试文件移动到类文件。所以这些类也会获得仅用于测试的功能。我喜欢这个,感觉很干净。我还没有创建一个在两个测试前端之间共享的测试库,这段代码已经到了目前正在尝试的obejct的类文件中。
请注意,下面的评论与“user89021”签署,但它是我,karlthorwald。我无能为力。
谢谢。我没有指定,因为我想避免使用语言标记我的问题。图书馆,对象,继承,这里的一切可能。 – user89021 2010-04-25 08:12:08
接受答案并不容易,因为他们都很好,帮助了我。非常感谢你。 – user89021 2010-04-26 09:09:20