我在git版本控制下用Python编写了一些机器学习代码(但是出于我的问题的目的,它可以是任何算法)。我的同事刚刚在功能分支上完成了代码库的重要重构。现在我想编写一些验收测试,以确保在生产中查询机器学习过程的结果与代码库的重构分支上的相同查询相比在合理的统计范围内。
这是一个在docker容器中运行的有点复杂的应用程序。测试需要作为更大系列测试的一部分运行。
我不对如何编写确定结果是否在合理统计范围内的测试部分感到困惑。我很困惑如何将主分支代码的结果与WIP分支的结果一起用于在一次测试中以自动方式进行比较
到目前为止,我最好(唯一)的想法是启动生产docker容器,运行机器学习查询,将查询结果写入csv文件,然后使用docker cp将此文件复制到本地计算机,可以根据功能分支上的等效csv进行测试。然而,这看起来不够优雅。
有更好/更智能/最佳实践方法吗?理想情况下,它会将内容保存在内存中。
答案 0 :(得分:0)
我会考虑使用http://approvaltests.com/框架,你只需编写测试代码,在执行测试的Python代码后会产生一些输出,输出可以是任何东西(文本,JSON / CSV文件等) )。
您可以先在主分支上运行此测试,以便将输出记录为已批准的基准,然后您可以切换到WIP分支并在输出不同的情况下运行相同的测试,批准测试将失败。
查看this podcast episode了解详情。