我写了一个程序/库,用来在一篇文章中获得结果。(这里是,但是我的问题很笼统。)我有定期使用的测试ctest
(运行需要几分钟)。为了重现文章中的某些表格或图表,我必须构建一个脚本或一个简单的驱动程序,该程序可能运行10分钟,有时甚至更长,因此我不想将其包含在常规测试套件中。同时,我想确保本文的结果可以是:
- 后来转载
- 在我继续开发库之后,请确保它们仍然给出相同/正确的结果
目前,我尝试拥有一个作为常规测试套件一部分运行的小型驱动程序,如果要重现本文的结果,请取消注释其中的几行。当然,我永远不知道确切的行以及是否必须调整一些其他参数才能获得与文章中完全相同的结果。
我还尝试过使用Python脚本来计算文章中的确切数字/表格。此类脚本通常在库更新后停止工作,因为它不是定期运行(占用太多时间)。
我想到的最好的方法是有一个Fortran(或C / C ++)示例,该示例将定期编译(作为库的一部分),但不能在常规测试套件中运行。这样,至少我知道它可以很好地编译(因此希望也可以运行)。作为常规测试套件的一部分,我将测试一些简单(较小)的示例。
解决此问题的最佳方法是什么?
2
很好的问题,我的第一个反应是,您应该将测试划分为快速回归,可以快速运行该回归,并在每次提交之前执行该测试,而在长期集成工作中希望使用更长的回归。您是否专门针对仅对前一个品种进行测试而尚未对它们进行划分的情况?
—
阿隆·艾玛迪亚
我有很多可以快速运行的测试,请参见此处:github.com/certik/hfsolver/tree/master/src/tests,但是我不知道如何处理本文的实际计算(例如,每个表10分钟) /数字可轻松得出总计几个小时的信息)。
—
昂德里杰·塞蒂克
使用连续集成服务器,每晚(或每周,每月等)自动运行长测试。由于除了结果外您无需关注其他任何事情,因此您无需担心它们花费了多长时间。
—
David Ketcheson