2016-11-19 80 views
0

我有一些机器学习的代码(但我的问题的目的,它可以是任何算法)Git版本控制之下用Python编写的。我的同事刚刚完成了对功能分支的代码库的重要重构。现在我想写一些验收测试,以确保在生产中查询机器学习过程的结果与代码库重构分支上的相同查询相比,在合理的统计范围内。代码在一个Python的测试

这是一个在Docker容器中运行的有点复杂的应用程序。测试需要作为更大系列测试的一部分来运行。

我是不是如何编写测试的一部分,确定结果是否在合理的统计范围内感到困惑。我很困惑如何将主分支代码的结果与来自WIP分支的结果一起以自动方式在一次测试中进行比较

到目前为止,我最好的(唯一的)想法是启动生产docker容器,运行机器学习查询,将查询结果写入csv文件,然后使用docker cp将此文件复制到本地计算机,在该计算机上可以根据功能分支上的等效csv对其进行测试。但是,这似乎不雅观。

是否有更好/更聪明/最佳实践的方式来做到这一点?理想的是让事情保持记忆。

回答

0

我会考虑使用http://approvaltests.com/框架,您只需编写测试代码,它将在执行测试的Python代码后产生一些输出,输出可以是任何东西(文本,JSON/CSV文件等)。

所以它记录输出作为批准的基准线,您可以先运行在主分支这个测试,然后就可以切换到您的WIP分支并运行相同的测试,如果有不同的输出批准测试将失败。

检查的详细信息进行this podcast episode